94 lines
2.7 KiB
JavaScript
94 lines
2.7 KiB
JavaScript
const {
|
|
getAllNotificationErrorSparepartDb,
|
|
getNotificationErrorSparepartByIdDb,
|
|
createNotificationErrorSparepartDb,
|
|
updateNotificationErrorSparepartDb,
|
|
deleteNotificationErrorSparepartDb,
|
|
} = require("../db/notification_error_sparepart.db");
|
|
|
|
const { getContactByIdDb } = require("../db/contact.db");
|
|
const { ErrorHandler } = require("../helpers/error");
|
|
|
|
class NotificationErrorSparepartService {
|
|
static _checkAccess(contactType) {
|
|
if (contactType !== "gudang") {
|
|
throw new ErrorHandler(
|
|
403,
|
|
"Akses ditolak. Hanya contact_type 'gudang' yang dapat getAll/create/update/delete."
|
|
);
|
|
}
|
|
}
|
|
|
|
static async getAll(param, contact_id) {
|
|
const contactResult = await getContactByIdDb(contact_id);
|
|
|
|
if (!contactResult || contactResult.length < 1)
|
|
throw new ErrorHandler(404, "Contact tidak ditemukan");
|
|
|
|
const contact = contactResult[0];
|
|
|
|
this._checkAccess(contact.contact_type);
|
|
return await getAllNotificationErrorSparepartDb(param);
|
|
}
|
|
|
|
static async getById(id) {
|
|
const result = await getNotificationErrorSparepartByIdDb(id);
|
|
|
|
if (result.length < 1)
|
|
throw new ErrorHandler(404, "Notification Error Sparepart not found");
|
|
|
|
return result;
|
|
}
|
|
|
|
static async create(data) {
|
|
const contactResult = await getContactByIdDb(data.contact_id);
|
|
|
|
if (!contactResult || contactResult.length < 1)
|
|
throw new ErrorHandler(404, "Contact tidak ditemukan");
|
|
|
|
const contact = contactResult[0];
|
|
|
|
this._checkAccess(contact.contact_type);
|
|
|
|
return await createNotificationErrorSparepartDb(data);
|
|
}
|
|
|
|
static async update(id, data) {
|
|
const contactResult = await getContactByIdDb(data.contact_id);
|
|
|
|
if (!contactResult || contactResult.length < 1)
|
|
throw new ErrorHandler(404, "Contact tidak ditemukan");
|
|
|
|
const contact = contactResult[0];
|
|
|
|
this._checkAccess(contact.contact_type);
|
|
|
|
const exist = await getNotificationErrorSparepartByIdDb(id);
|
|
|
|
if (exist.length < 1)
|
|
throw new ErrorHandler(404, "Notification Error Sparepart not found");
|
|
|
|
return await updateNotificationErrorSparepartDb(id, data);
|
|
}
|
|
|
|
static async delete(id, contact_id) {
|
|
const contactResult = await getContactByIdDb(contact_id);
|
|
|
|
if (!contactResult || contactResult.length < 1)
|
|
throw new ErrorHandler(404, "Contact tidak ditemukan");
|
|
|
|
const contact = contactResult[0];
|
|
|
|
this._checkAccess(contact.contact_type);
|
|
|
|
const exist = await getNotificationErrorSparepartByIdDb(id);
|
|
|
|
if (exist.length < 1)
|
|
throw new ErrorHandler(404, "Notification Error Sparepart not found");
|
|
|
|
return await deleteNotificationErrorSparepartDb(id);
|
|
}
|
|
}
|
|
|
|
module.exports = NotificationErrorSparepartService;
|