-
Notifications
You must be signed in to change notification settings - Fork 0
/
routes.js
76 lines (69 loc) · 2.16 KB
/
routes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const express = require("express");
const controllers = require("../app/controllers");
// Some dependencies for api documenations
const YAML = require("yamljs");
const swaggerUI = require("swagger-ui-express");
const apiDocs = YAML.load("./api-doc.yaml");
const apiRouter = express.Router();
/**
* TODO: Implement your own API
* implementations
*/
// api documentation endpoint using swagger ui
apiRouter.use("/api-docs/v1", swaggerUI.serve, swaggerUI.setup(apiDocs));
// User endpoint
apiRouter.post("/api/v1/user/login", controllers.api.v1.userController.login);
apiRouter.post(
"/api/v1/user/register",
controllers.api.v1.validatorController.validate(
controllers.api.v1.validatorController.registerRules
),
controllers.api.v1.userController.register
);
apiRouter.get(
"/api/v1/user/whoami",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.whoAmI
);
apiRouter.put(
"/api/v1/user/update",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.isSuperAdmin,
controllers.api.v1.userController.update
);
// Car endpoint
apiRouter.get(
"/api/v1/cars",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.isAdmin,
controllers.api.v1.carController.list
);
apiRouter.post(
"/api/v1/car/create",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.isAdmin,
controllers.api.v1.validatorController.validate(
controllers.api.v1.validatorController.CreateCarRules
),
controllers.api.v1.carController.create
);
apiRouter.put(
"/api/v1/car/update",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.isAdmin,
controllers.api.v1.carController.update
);
apiRouter.post(
"/api/v1/car/find",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.isAdmin,
controllers.api.v1.carController.find
);
apiRouter.post(
// soft delete (only set "isActive" to false) and you can use this endpoint to take a peek any deleted data by id
"/api/v1/car/delete",
controllers.api.v1.userController.checkToken,
controllers.api.v1.userController.isAdmin,
controllers.api.v1.carController.destroy
);
module.exports = apiRouter;