91 lines
2.7 KiB
JavaScript
91 lines
2.7 KiB
JavaScript
const {Gejala} = require('../models');
|
|
|
|
// 🔹 Menampilkan semua data gejala
|
|
exports.getAllGejala = async (req, res) => {
|
|
try {
|
|
const gejala = await Gejala.findAll({
|
|
attributes: ['id', 'nama', 'kode']
|
|
});
|
|
res.status(200).json(gejala);
|
|
} catch (error) {
|
|
res.status(500).json({ message: 'Terjadi kesalahan', error });
|
|
}
|
|
};
|
|
|
|
// 🔹 Menampilkan satu gejala berdasarkan ID
|
|
exports.getGejalaById = async (req, res) => {
|
|
try {
|
|
const gejala = await Gejala.findByPk(req.params.id);
|
|
if (!gejala) {
|
|
return res.status(404).json({ message: 'Gejala tidak ditemukan' });
|
|
}
|
|
res.status(200).json(gejala);
|
|
} catch (error) {
|
|
res.status(500).json({ message: 'Terjadi kesalahan', error });
|
|
}
|
|
};
|
|
|
|
// 🔹 Menambahkan gejala baru dengan kode otomatis
|
|
exports.createGejala = async (req, res) => {
|
|
try {
|
|
const { nama } = req.body;
|
|
|
|
if (!nama) {
|
|
return res.status(400).json({ message: 'Nama gejala wajib diisi' });
|
|
}
|
|
|
|
// Cari kode terakhir di database
|
|
const lastGejala = await Gejala.findOne({
|
|
order: [['id', 'DESC']]
|
|
});
|
|
|
|
// Generate kode baru berdasarkan kode terakhir
|
|
let newKode = 'G01';
|
|
if (lastGejala && lastGejala.kode) {
|
|
const lastNumber = parseInt(lastGejala.kode.substring(1)); // Ambil angka setelah 'G'
|
|
const nextNumber = lastNumber + 1;
|
|
newKode = `G${nextNumber.toString().padStart(2, '0')}`; // Format G01, G02, dst.
|
|
}
|
|
|
|
// Buat data baru
|
|
const newGejala = await Gejala.create({ kode: newKode, nama });
|
|
|
|
res.status(201).json({ message: 'Gejala berhasil ditambahkan', data: newGejala });
|
|
} catch (error) {
|
|
res.status(500).json({ message: 'Gagal menambahkan gejala', error: error.message });
|
|
}
|
|
};
|
|
|
|
// 🔹 Mengupdate gejala berdasarkan ID
|
|
exports.updateGejala = async (req, res) => {
|
|
try {
|
|
const { kode, nama } = req.body;
|
|
const gejala = await Gejala.findByPk(req.params.id);
|
|
|
|
if (!gejala) {
|
|
return res.status(404).json({ message: 'Gejala tidak ditemukan' });
|
|
}
|
|
|
|
await gejala.update({ kode, nama });
|
|
res.status(200).json({ message: 'Gejala berhasil diperbarui', data: gejala });
|
|
} catch (error) {
|
|
res.status(500).json({ message: 'Gagal memperbarui gejala', error });
|
|
}
|
|
};
|
|
|
|
// 🔹 Menghapus gejala berdasarkan ID
|
|
exports.deleteGejala = async (req, res) => {
|
|
try {
|
|
const gejala = await Gejala.findByPk(req.params.id);
|
|
|
|
if (!gejala) {
|
|
return res.status(404).json({ message: 'Gejala tidak ditemukan' });
|
|
}
|
|
|
|
await gejala.destroy();
|
|
res.status(200).json({ message: 'Gejala berhasil dihapus' });
|
|
} catch (error) {
|
|
res.status(500).json({ message: 'Gagal menghapus gejala', error });
|
|
}
|
|
};
|