Skip to content

Commit

Permalink
Merge pull request cyclic-software#12 from royyan005/local
Browse files Browse the repository at this point in the history
add validation for post roles + change endpoint
  • Loading branch information
royyan005 authored Sep 15, 2022
2 parents 7c84827 + 1e84f3c commit 1bac506
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 48 deletions.
132 changes: 87 additions & 45 deletions controller/mahasiswa.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,131 +144,173 @@ export const deleteMahasiswa = async (req, res) => {
}

export const postRolePembimbing1 = async (req, res) => {
const refreshToken = req.cookies.refreshToken;
if (!refreshToken) return res.status(401).json({
const { iduser, idmahasiswa } = req.params

const pembimbing1Exist = await Mahasiswa.findOne({
where: {
idpembimbing1: null,
id: idmahasiswa
}
})
if (!pembimbing1Exist) return res.status(400).json({
status: res.statusCode,
message: "Unauthorized"
});
const user = await Users.findAll({
message: 'Mahasiswa Sudah Ada Pembimbing 1 !'
})

const userExist = await Mahasiswa.findOne({
where: {
refresh_token: refreshToken
id: idmahasiswa,
[Op.or]: [
{ idpembimbing1: iduser },
{ idpembimbing2: iduser },
{ idpenguji: iduser }
]
}
});
if (!user[0]) return res.status(403).json({
})
if (userExist) return res.status(400).json({
status: res.statusCode,
message: "Forbidden"
});
message: 'Anda sudah menjadi pembimbing/penguji !'
})

try {
const updateMahasiswa = await Mahasiswa.update({
idpembimbing1: user[0].id,
idpembimbing1: iduser,
}, {
where: {
id: req.params.id,
id: idmahasiswa,
}
});
if (updateMahasiswa == 0) return error
const searchmahasiswa = await Mahasiswa.findOne({
where: {
id: req.params.id,
id: idmahasiswa,
}
})
res.status(200).json({
id: req.params.id,
id: idmahasiswa,
status: res.statusCode,
message: 'Berhasil memperbarui mahasiswa',
data: searchmahasiswa
})
} catch (err) {
res.status(400).json({
id: req.params.id,
id: idmahasiswa,
status: res.statusCode,
message: 'Gagal memperbarui mahasiswa'
})
}
}

export const postRolePembimbing2 = async (req, res) => {
const refreshToken = req.cookies.refreshToken;
if (!refreshToken) return res.status(401).json({
const { iduser, idmahasiswa } = req.params

const pembimbing2Exist = await Mahasiswa.findOne({
where: {
idpembimbing2: null,
id: idmahasiswa
}
})
if (!pembimbing2Exist) return res.status(400).json({
status: res.statusCode,
message: "Unauthorized"
});
const user = await Users.findAll({
message: 'Mahasiswa Sudah Ada Pembimbing 2 !'
})

const userExist = await Mahasiswa.findOne({
where: {
refresh_token: refreshToken
id: idmahasiswa,
[Op.or]: [
{ idpembimbing1: iduser },
{ idpembimbing2: iduser },
{ idpenguji: iduser }
]
}
});
if (!user[0]) return res.status(403).json({
})
if (userExist) return res.status(400).json({
status: res.statusCode,
message: "Forbidden"
});
message: 'Anda sudah menjadi pembimbing/penguji !'
})

try {
const updateMahasiswa = await Mahasiswa.update({
idpembimbing2: user[0].id,
idpembimbing2: iduser,
}, {
where: {
id: req.params.id,
id: idmahasiswa,
}
});
if (updateMahasiswa == 0) return error
const searchmahasiswa = await Mahasiswa.findOne({
where: {
id: req.params.id,
id: idmahasiswa,
}
})
res.status(200).json({
id: req.params.id,
id: idmahasiswa,
status: res.statusCode,
message: 'Berhasil memperbarui mahasiswa',
data: searchmahasiswa
})
} catch (err) {
res.status(400).json({
id: req.params.id,
id: idmahasiswa,
status: res.statusCode,
message: 'Gagal memperbarui mahasiswa'
})
}
}

export const postRolePenguji = async (req, res) => {
const refreshToken = req.cookies.refreshToken;
if (!refreshToken) return res.status(401).json({
const { iduser, idmahasiswa } = req.params

const pengujiExist = await Mahasiswa.findOne({
where: {
idpenguji: null,
id: idmahasiswa
}
})
if (!pengujiExist) return res.status(400).json({
status: res.statusCode,
message: "Unauthorized"
});
const user = await Users.findAll({
message: 'Mahasiswa Sudah Ada Penguji !'
})

const userExist = await Mahasiswa.findOne({
where: {
refresh_token: refreshToken
id: idmahasiswa,
[Op.or]: [
{ idpembimbing1: iduser },
{ idpembimbing2: iduser },
{ idpenguji: iduser }
]
}
});
if (!user[0]) return res.status(403).json({
})
if (userExist) return res.status(400).json({
status: res.statusCode,
message: "Forbidden"
});
message: 'Anda sudah menjadi pembimbing/penguji !'
})

try {
const updateMahasiswa = await Mahasiswa.update({
idpenguji: user[0].id,
idpenguji: iduser,
}, {
where: {
id: req.params.id,
id: idmahasiswa,
}
});
if (updateMahasiswa == 0) return error
const searchmahasiswa = await Mahasiswa.findOne({
where: {
id: req.params.id,
id: idmahasiswa,
}
})
res.status(200).json({
id: req.params.id,
id: idmahasiswa,
status: res.statusCode,
message: 'Berhasil memperbarui mahasiswa',
data: searchmahasiswa
})
} catch (err) {
res.status(400).json({
id: req.params.id,
id: idmahasiswa,
status: res.statusCode,
message: 'Gagal memperbarui mahasiswa'
})
Expand Down
6 changes: 3 additions & 3 deletions routes/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ router.get("/pagination/mahasiswa", verifyToken, getMahasiswaPagination);
router.get("/search/mahasiswa", verifyToken, searchMahasiswaPagination);
router.put("/mahasiswa/:id", verifyToken, updateMahasiswa);
router.delete("/mahasiswa/:id", verifyToken, deleteMahasiswa);
router.post("/mahasiswa/:id/pembimbing1", verifyToken, postRolePembimbing1);
router.post("/mahasiswa/:id/pembimbing2", verifyToken, postRolePembimbing2);
router.post("/mahasiswa/:id/penguji", verifyToken, postRolePenguji);
router.post("/mahasiswa/:idmahasiswa/pembimbing1/:iduser", verifyToken, postRolePembimbing1);
router.post("/mahasiswa/:idmahasiswa/pembimbing2/:iduser", verifyToken, postRolePembimbing2);
router.post("/mahasiswa/:idmahasiswa/penguji/:iduser", verifyToken, postRolePenguji);

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

0 comments on commit 1bac506

Please sign in to comment.