Skip to content

Commit 323d1a9

Browse files
committed
A medias de hacer deploy
1 parent 91ec277 commit 323d1a9

File tree

5 files changed

+52
-14
lines changed

5 files changed

+52
-14
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
node_modules
22
# Keep environment variables out of version control
33
.env
4+
forums-api*
5+
dist

2023-05-11/forums-api-ts-express-prisma-postgres/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
"main": "src/server.ts",
66
"type": "module",
77
"scripts": {
8-
"dev": "nodemon src/server.ts"
8+
"dev": "nodemon src/server.ts",
9+
"build": "tsc",
10+
"start": "node dist/server.js"
911
},
1012
"keywords": [],
1113
"author": "pauek",

2023-05-11/forums-api-ts-express-prisma-postgres/src/forums.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { Router } from "express";
1+
import { Request, Router } from "express";
22
import prisma from "./prisma-client.js";
33
import { errorChecked } from "./utils.js";
4+
import messagesRouter from "./messages.js";
45

56
const router = Router();
67

@@ -20,23 +21,30 @@ router.post(
2021
})
2122
);
2223

24+
export interface RequestWithForumId extends Request {
25+
forumId: number;
26+
}
27+
router.use("/:id", async (req: RequestWithForumId, res, next) => {
28+
const { id } = req.params;
29+
req.forumId = Number(id);
30+
next();
31+
});
32+
2333
router.get(
2434
"/:id",
25-
errorChecked(async (req, res) => {
26-
const { id } = req.params;
35+
errorChecked(async (req: RequestWithForumId, res) => {
2736
const forum = await prisma.forum.findUniqueOrThrow({
28-
where: { id: Number(id) },
37+
where: { id: req.forumId },
2938
});
3039
res.status(200).json(forum);
3140
})
3241
);
3342

3443
router.put(
3544
"/:id",
36-
errorChecked(async (req, res) => {
37-
const { id } = req.params;
45+
errorChecked(async (req: RequestWithForumId, res) => {
3846
const updatedForum = await prisma.forum.update({
39-
where: { id: Number(id) },
47+
where: { id: req.forumId },
4048
data: req.body,
4149
});
4250
res.status(200).json(updatedForum);
@@ -45,16 +53,14 @@ router.put(
4553

4654
router.delete(
4755
"/:id",
48-
errorChecked(async (req, res, next) => {
49-
const { id } = req.params;
56+
errorChecked(async (req: RequestWithForumId, res) => {
5057
const deletedForum = await prisma.forum.delete({
51-
where: { id: Number(id) },
58+
where: { id: req.forumId },
5259
});
5360
res.status(200).json(deletedForum);
5461
})
5562
);
5663

57-
// GET /forums/:id/messages
58-
// POST /forums/:id/messages
64+
router.use("/:id/messages", messagesRouter);
5965

6066
export default router;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { Router } from "express";
2+
import { errorChecked } from "./utils.js";
3+
import prisma from "./prisma-client.js";
4+
import { RequestWithForumId } from "./forums.js";
5+
6+
const router = Router();
7+
8+
router.get(
9+
"/",
10+
errorChecked(async (req: RequestWithForumId, res) => {
11+
const messages = await prisma.message.findMany({
12+
where: { forumId: req.forumId },
13+
});
14+
res.status(200).json(messages);
15+
})
16+
);
17+
18+
router.post(
19+
"/",
20+
errorChecked(async (req: RequestWithForumId, res) => {
21+
const newMessage = await prisma.message.create({
22+
data: { ...req.body, forumId: req.forumId },
23+
});
24+
res.status(200).json(newMessage);
25+
})
26+
);
27+
28+
export default router;

2023-05-11/forums-api-ts-express-prisma-postgres/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
"module": "esnext",
44
"target": "esnext",
55
"moduleResolution": "nodenext",
6-
"strict": true
6+
"outDir": "dist"
77
}
88
}

0 commit comments

Comments
 (0)