-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
137 lines (109 loc) · 3.21 KB
/
Copy pathapp.js
File metadata and controls
137 lines (109 loc) · 3.21 KB
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
if(const !== null {
return res.status(200).json({ success: true, payload: response})
} else {
return res.status(400).json({ success: false, payload: null})
}
*/
import express from "express";
import cors from "cors";
const app = express();
const port = 3000;
import {
getUsers,
getUserByID,
createUser,
updateUserByID,
deleteUserByID,
} from "./users.js";
app.use(express.static("public"));
app.use(express.json());
app.use(
cors({
origin: [
"http://localhost:3000",
"https://catchphrase-competition.netlify.app/",
],
})
);
// app.use("/", (req, res) => {
// res.json({
// status: true,
// payload: "This route works!",
// });
// });
/*
Function that added 0 upvotes to all objects in users.json
async function addUpVotes() {
// READ
const response = await fs.readFile("users.json", "utf-8");
// PARSE
const data = JSON.parse(response);
console.log(data[0]);
// MODIFY
for (let i = 0; i < data.length; i++) {
data[i] = { ...data[i], upvotes: 0 };
}
// STRINGIFY AND WRITE
const result = await fs.writeFile(
"users.json",
JSON.stringify(data),
"utf-8"
);
console.log(result);
}
addUpVotes();
*/
// .get for all users { success: true, payload: array of user objects }
app.get("/api/users", async (req, res) => {
const payload = await getUsers();
const success = payload !== null;
if (success) {
return res.json({ success: success, payload: payload });
}
res.status(400).json({ success: success, payload: null });
});
// .get for get user by id { success: true, payload: user object }
app.get("/api/users/:id", async (req, res) => {
const userID = req.params.id;
const payload = await getUserByID(userID);
const success = payload !== null;
if (success) {
return res.json({ success: success, payload: payload });
}
res.status(404).json({ success: success, payload: null });
});
// .post for new user (generate i.d within helper function using uuidv4) { success: true, payload: newly created user object }
app.post("/api/users", async (req, res) => {
const user = req.body;
const payload = await createUser(user);
const success = payload !== null;
if (success) {
return res.json({ success: success, payload: payload });
}
res.status(400).json({ success: success, payload: null });
});
// .patch for updateUserById .body and .id to be passed into helper function. { success: true, payload: new user object (after replacement) }
app.patch("/api/users/:id", async (req, res) => {
const userID = req.params.id;
const user = req.body;
const payload = await updateUserByID(userID, user);
const success = payload !== null;
if (success) {
return res.json({ success: success, payload: payload });
}
res.status(404).json({ success: success, payload: null });
});
// .delete for delete user by Id { success: true, payload: deleted user }
app.delete("/api/users/:id", async (req, res) => {
const userID = req.params.id;
const payload = await deleteUserByID(userID);
const success = payload !== null;
if (success) {
return res.json({ success: success, payload: payload });
}
res.status(404).json({ success: success, payload: null });
});
app.listen(port, () => {
console.log(`Server is running`);
});