Skip to content

Commit 1bac506

Browse files
authored
Merge pull request cyclic-software#12 from royyan005/local
add validation for post roles + change endpoint
2 parents 7c84827 + 1e84f3c commit 1bac506

File tree

2 files changed

+90
-48
lines changed

2 files changed

+90
-48
lines changed

controller/mahasiswa.js

Lines changed: 87 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -144,131 +144,173 @@ export const deleteMahasiswa = async (req, res) => {
144144
}
145145

146146
export const postRolePembimbing1 = async (req, res) => {
147-
const refreshToken = req.cookies.refreshToken;
148-
if (!refreshToken) return res.status(401).json({
147+
const { iduser, idmahasiswa } = req.params
148+
149+
const pembimbing1Exist = await Mahasiswa.findOne({
150+
where: {
151+
idpembimbing1: null,
152+
id: idmahasiswa
153+
}
154+
})
155+
if (!pembimbing1Exist) return res.status(400).json({
149156
status: res.statusCode,
150-
message: "Unauthorized"
151-
});
152-
const user = await Users.findAll({
157+
message: 'Mahasiswa Sudah Ada Pembimbing 1 !'
158+
})
159+
160+
const userExist = await Mahasiswa.findOne({
153161
where: {
154-
refresh_token: refreshToken
162+
id: idmahasiswa,
163+
[Op.or]: [
164+
{ idpembimbing1: iduser },
165+
{ idpembimbing2: iduser },
166+
{ idpenguji: iduser }
167+
]
155168
}
156-
});
157-
if (!user[0]) return res.status(403).json({
169+
})
170+
if (userExist) return res.status(400).json({
158171
status: res.statusCode,
159-
message: "Forbidden"
160-
});
172+
message: 'Anda sudah menjadi pembimbing/penguji !'
173+
})
174+
161175
try {
162176
const updateMahasiswa = await Mahasiswa.update({
163-
idpembimbing1: user[0].id,
177+
idpembimbing1: iduser,
164178
}, {
165179
where: {
166-
id: req.params.id,
180+
id: idmahasiswa,
167181
}
168182
});
169183
if (updateMahasiswa == 0) return error
170184
const searchmahasiswa = await Mahasiswa.findOne({
171185
where: {
172-
id: req.params.id,
186+
id: idmahasiswa,
173187
}
174188
})
175189
res.status(200).json({
176-
id: req.params.id,
190+
id: idmahasiswa,
177191
status: res.statusCode,
178192
message: 'Berhasil memperbarui mahasiswa',
179193
data: searchmahasiswa
180194
})
181195
} catch (err) {
182196
res.status(400).json({
183-
id: req.params.id,
197+
id: idmahasiswa,
184198
status: res.statusCode,
185199
message: 'Gagal memperbarui mahasiswa'
186200
})
187201
}
188202
}
189203

190204
export const postRolePembimbing2 = async (req, res) => {
191-
const refreshToken = req.cookies.refreshToken;
192-
if (!refreshToken) return res.status(401).json({
205+
const { iduser, idmahasiswa } = req.params
206+
207+
const pembimbing2Exist = await Mahasiswa.findOne({
208+
where: {
209+
idpembimbing2: null,
210+
id: idmahasiswa
211+
}
212+
})
213+
if (!pembimbing2Exist) return res.status(400).json({
193214
status: res.statusCode,
194-
message: "Unauthorized"
195-
});
196-
const user = await Users.findAll({
215+
message: 'Mahasiswa Sudah Ada Pembimbing 2 !'
216+
})
217+
218+
const userExist = await Mahasiswa.findOne({
197219
where: {
198-
refresh_token: refreshToken
220+
id: idmahasiswa,
221+
[Op.or]: [
222+
{ idpembimbing1: iduser },
223+
{ idpembimbing2: iduser },
224+
{ idpenguji: iduser }
225+
]
199226
}
200-
});
201-
if (!user[0]) return res.status(403).json({
227+
})
228+
if (userExist) return res.status(400).json({
202229
status: res.statusCode,
203-
message: "Forbidden"
204-
});
230+
message: 'Anda sudah menjadi pembimbing/penguji !'
231+
})
232+
205233
try {
206234
const updateMahasiswa = await Mahasiswa.update({
207-
idpembimbing2: user[0].id,
235+
idpembimbing2: iduser,
208236
}, {
209237
where: {
210-
id: req.params.id,
238+
id: idmahasiswa,
211239
}
212240
});
213241
if (updateMahasiswa == 0) return error
214242
const searchmahasiswa = await Mahasiswa.findOne({
215243
where: {
216-
id: req.params.id,
244+
id: idmahasiswa,
217245
}
218246
})
219247
res.status(200).json({
220-
id: req.params.id,
248+
id: idmahasiswa,
221249
status: res.statusCode,
222250
message: 'Berhasil memperbarui mahasiswa',
223251
data: searchmahasiswa
224252
})
225253
} catch (err) {
226254
res.status(400).json({
227-
id: req.params.id,
255+
id: idmahasiswa,
228256
status: res.statusCode,
229257
message: 'Gagal memperbarui mahasiswa'
230258
})
231259
}
232260
}
233261

234262
export const postRolePenguji = async (req, res) => {
235-
const refreshToken = req.cookies.refreshToken;
236-
if (!refreshToken) return res.status(401).json({
263+
const { iduser, idmahasiswa } = req.params
264+
265+
const pengujiExist = await Mahasiswa.findOne({
266+
where: {
267+
idpenguji: null,
268+
id: idmahasiswa
269+
}
270+
})
271+
if (!pengujiExist) return res.status(400).json({
237272
status: res.statusCode,
238-
message: "Unauthorized"
239-
});
240-
const user = await Users.findAll({
273+
message: 'Mahasiswa Sudah Ada Penguji !'
274+
})
275+
276+
const userExist = await Mahasiswa.findOne({
241277
where: {
242-
refresh_token: refreshToken
278+
id: idmahasiswa,
279+
[Op.or]: [
280+
{ idpembimbing1: iduser },
281+
{ idpembimbing2: iduser },
282+
{ idpenguji: iduser }
283+
]
243284
}
244-
});
245-
if (!user[0]) return res.status(403).json({
285+
})
286+
if (userExist) return res.status(400).json({
246287
status: res.statusCode,
247-
message: "Forbidden"
248-
});
288+
message: 'Anda sudah menjadi pembimbing/penguji !'
289+
})
290+
249291
try {
250292
const updateMahasiswa = await Mahasiswa.update({
251-
idpenguji: user[0].id,
293+
idpenguji: iduser,
252294
}, {
253295
where: {
254-
id: req.params.id,
296+
id: idmahasiswa,
255297
}
256298
});
257299
if (updateMahasiswa == 0) return error
258300
const searchmahasiswa = await Mahasiswa.findOne({
259301
where: {
260-
id: req.params.id,
302+
id: idmahasiswa,
261303
}
262304
})
263305
res.status(200).json({
264-
id: req.params.id,
306+
id: idmahasiswa,
265307
status: res.statusCode,
266308
message: 'Berhasil memperbarui mahasiswa',
267309
data: searchmahasiswa
268310
})
269311
} catch (err) {
270312
res.status(400).json({
271-
id: req.params.id,
313+
id: idmahasiswa,
272314
status: res.statusCode,
273315
message: 'Gagal memperbarui mahasiswa'
274316
})

routes/routes.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ router.get("/pagination/mahasiswa", verifyToken, getMahasiswaPagination);
2828
router.get("/search/mahasiswa", verifyToken, searchMahasiswaPagination);
2929
router.put("/mahasiswa/:id", verifyToken, updateMahasiswa);
3030
router.delete("/mahasiswa/:id", verifyToken, deleteMahasiswa);
31-
router.post("/mahasiswa/:id/pembimbing1", verifyToken, postRolePembimbing1);
32-
router.post("/mahasiswa/:id/pembimbing2", verifyToken, postRolePembimbing2);
33-
router.post("/mahasiswa/:id/penguji", verifyToken, postRolePenguji);
31+
router.post("/mahasiswa/:idmahasiswa/pembimbing1/:iduser", verifyToken, postRolePembimbing1);
32+
router.post("/mahasiswa/:idmahasiswa/pembimbing2/:iduser", verifyToken, postRolePembimbing2);
33+
router.post("/mahasiswa/:idmahasiswa/penguji/:iduser", verifyToken, postRolePenguji);
3434

3535
// FORM SUBMIT
3636
router.post("/matkul1/iduser/:iduser/idmahasiswa/:idmahasiswa", verifyToken, postMatkul1);

0 commit comments

Comments
 (0)