-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
145 lines (124 loc) · 3.48 KB
/
app.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
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
138
139
140
141
142
143
144
145
// importing express
// importing data
// importing helmet
import express from "express";
import music from "./music_data.js";
import helmet from "helmet";
// Calling express functions
const app = express();
app.use(express.json());
// use Helmet
app.use(helmet());
let music_ds = music;
// Create CRUD requests
// GET request test
app.get("/", (req, res) => {
res.json({ message: "Hello from root path!" });
});
// GET request trivia
app.get("/music", (req, res) => {
res.status(200).json({ success: true, payload: music_ds });
});
// GET request by ID
app.get("/music/:id", (req, res) => {
try {
const reqID = Number(req.params.id);
function matchID(music_ds) {
return music_ds.id === reqID;
}
const track = music_ds.find(matchID);
if (!track) {
res.json({ success: false, payload: { message: "track not found" } });
} else {
res.json({ success: true, payload: track });
}
} catch (err) {
res.json({ success: false, payload: { message: "error" } });
}
});
//POST request
app.post("/music", (req, res) => {
try {
// const id = music.length;
// const artist = req.body.artist
// const title = req.body.title
// const album = req.body.album
// const duration = req.body.duration
// const year_release = req.body.year_release
const track = req.body;
track.id = music_ds.length;
music.push(track);
res.status(200).json({ success: true, payload: track });
} catch (err) {
res.json({ success: false, payload: { message: "error" } });
}
});
// PUT request by ID
app.put("/music/:id", (req, res) => {
try {
const reqID = Number(req.params.id);
// function matchID(music) {
// return music.id === reqID
// }
music_ds[reqID] = req.body;
res.status(200).json({ success: true, payload: music_ds[reqID] });
} catch (err) {
res.json({ success: false, payload: { message: "error" } });
}
});
// PATCH request by ID
app.patch("/music_ds/:id", (req, res) => {
const reqID = Number(req.params.id);
const artist = req.body.artist;
const title = req.body.title;
const album = req.body.album;
const duration = req.body.durationy;
const year_release = req.body.year_release;
//create a function that finds the index and compares it to the id selected
const found = music.findIndex((music_ds) => {
return music_ds.id === id;
});
//create if statements that check whether the the id exists
if (found) {
if (artist) {
music_ds[found].artist = artist;
}
if (title) {
music_ds[found].title = title;
}
if (album) {
music_ds[found].album = album;
}
if (duration) {
music_ds[found].duration = duration;
}
if (year_release) {
music_ds[found].year_release = year_release;
}
}
//return a response for pass and fail
res.status(200).json({
success: true,
payload: music_ds[found],
});
res.status(404).json({ success: false, message: "Failed to update" });
});
// DELETE request by ID
app.delete("/music/:id", (req, res) => {
try {
const reqID = Number(req.params.id);
console.log(reqID);
function matchID(music) {
return music.id === reqID;
}
const track = music.find(matchID);
console.log(track);
//music = music.splice(0,reqID) + music.splice(reqID+1, -1)
//delete music[reqID]
music[reqID] = {};
res.status(200).json({ success: true, payload: music });
} catch (err) {
res.json({ success: false, payload: { message: "error" } });
}
});
export default app;