MIF_E31222519/API/routes/pelanggaranRoutes.js

51 lines
1.7 KiB
JavaScript

const express = require('express');
const router = express.Router();
const Pelanggaran = require('../models/Pelanggaran');
const ListPelanggaran = require('../models/ListPelanggaran');
const authMiddleware = require('../middleware/authMiddleware');
router.get('/', authMiddleware, async (req, res) => {
try {
// Ambil pelanggaran berdasarkan siswa yang login
const pelanggaran = await Pelanggaran.findAll({
where: { id_siswa: req.user.id_siswa },
include: [{
model: ListPelanggaran,
as: 'list_pelanggaran',
attributes: ['id_listpelanggaran', 'nama_pelanggaran', 'skor']
}],
attributes: ['id_pelanggaran', 'tanggal']
});
if (!pelanggaran || pelanggaran.length === 0) {
return res.status(404).json({
status: "error",
message: "Tidak ada pelanggaran yang ditemukan untuk siswa ini."
});
}
// Mapping data agar list_pelanggaran keluar dari objek list_pelanggaran
const hasil = pelanggaran.map(item => ({
id_pelanggaran: item.id_pelanggaran,
tanggal: item.tanggal,
id_listpelanggaran: item.list_pelanggaran?.id_listpelanggaran,
nama_pelanggaran: item.list_pelanggaran?.nama_pelanggaran,
skor: item.list_pelanggaran?.skor
}));
res.json({
status: "success",
message: "Pelanggaran ditemukan",
data: hasil
});
} catch (error) {
res.status(500).json({
status: "error",
message: "Terjadi kesalahan pada server",
error: error.message
});
}
});
module.exports = router;