-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrouter.ts
62 lines (53 loc) · 1.83 KB
/
router.ts
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
import { Router } from "https://deno.land/x/oak/mod.ts";
import {
getProducts,
getProduct,
addProduct,
updateProduct,
deleteProduct,
} from "./controllers/productController.ts";
import {
getUsers,
getUser,
addUser,
updateUser,
deleteUser,
} from "./controllers/userController.ts";
import { userCollection, bookCollection } from "./db/_db.ts";
import { BookController } from "./controllers/bookController.ts";
import { ExtendUserController } from "./controllers/extendUserController.ts";
import { UserOut } from "./dtos/outputs/userOut.model.ts";
import { UserSchema } from "./schemas/user.schema.ts";
import { UserInputSchema } from "./dtos/inputs/userInput.model.ts";
import { BookSchema } from "./schemas/book.schema.ts";
import { BookOut } from "./dtos/outputs/bookOut.model.ts";
import { BookInputSchema } from "./dtos/inputs/bookInput.model.ts";
const router = new Router();
router.prefix("/api/v1");
router
.get("/products", getProducts)
.get("/products/:id", getProduct)
.post("/products", addProduct)
.put("/products/:id", updateProduct)
.delete("/products/:id", deleteProduct);
router
.get("/users", getUsers)
.get("/users/:id", getUser)
.post("/users", addUser)
.put("/users/:id", updateUser)
.delete("/users/:id", deleteUser);
router
.get("/extendUser", new ExtendUserController(userCollection, UserSchema, UserOut, UserInputSchema).getAll)
.post("/extendUser", new ExtendUserController(userCollection, UserSchema, UserOut, UserInputSchema).add)
.put("/extendUser", new ExtendUserController(userCollection, UserSchema, UserOut, UserInputSchema).add);
router
.get(
"/books",
new BookController(bookCollection, BookSchema, BookOut, BookInputSchema)
.getAll
)
.post(
"/books",
new BookController(bookCollection, BookSchema, BookOut, BookInputSchema).add
);
export default router;