110 lines
3.6 KiB
JavaScript
110 lines
3.6 KiB
JavaScript
const {
|
|
getAllSparepartDb,
|
|
getSparepartByIdDb,
|
|
createSparepartDb,
|
|
updateSparepartDb,
|
|
deleteSparepartDb,
|
|
checkSparepartNameExistsDb,
|
|
} = require("../db/sparepart.db");
|
|
|
|
|
|
const { ErrorHandler } = require("../helpers/error");
|
|
|
|
class SparepartService {
|
|
static async getAllSparepart(param) {
|
|
try {
|
|
const results = await getAllSparepartDb(param);
|
|
results.data.map((item) => {});
|
|
return results;
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
|
}
|
|
}
|
|
static async getSparepartById(id) {
|
|
try {
|
|
const Sparepart = await getSparepartByIdDb(id);
|
|
if (!Sparepart) throw new ErrorHandler(404, "Sparepart not found");
|
|
return Sparepart;
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
|
}
|
|
}
|
|
|
|
static async createSparepart(data) {
|
|
try {
|
|
if (!data || typeof data !== "object") data = {};
|
|
if (data.sparepart_name) {
|
|
const exists = await checkSparepartNameExistsDb(data.sparepart_name);
|
|
if (exists)
|
|
throw new ErrorHandler(400, "Sparepart name already exists");
|
|
}
|
|
const insertData = {
|
|
sparepart_name: data.sparepart_name,
|
|
sparepart_description: data.sparepart_description,
|
|
sparepart_foto: data.sparepart_foto,
|
|
sparepart_stok: data.sparepart_stok,
|
|
sparepart_model: data.sparepart_model,
|
|
sparepart_merk: data.sparepart_merk,
|
|
sparepart_qty: data.sparepart_qty,
|
|
sparepart_item_type: data.sparepart_item_type,
|
|
sparepart_unit: data.sparepart_unit,
|
|
created_by: data.created_by,
|
|
};
|
|
const created = await createSparepartDb(insertData);
|
|
if (!created) throw new ErrorHandler(500, "Failed to create Sparepart");
|
|
return created;
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
|
}
|
|
}
|
|
|
|
static async updateSparepart(id, data) {
|
|
try {
|
|
const existing = await getSparepartByIdDb(id);
|
|
if (!existing) throw new ErrorHandler(404, "Sparepart not found");
|
|
if (
|
|
data.sparepart_name &&
|
|
data.sparepart_name !== existing.sparepart_name
|
|
) {
|
|
const exists = await checkSparepartNameExistsDb(
|
|
data.sparepart_name,
|
|
id
|
|
);
|
|
if (exists)
|
|
throw new ErrorHandler(400, "Sparepart name already exists");
|
|
}
|
|
const updateData = {
|
|
sparepart_name: data.sparepart_name,
|
|
sparepart_description: data.sparepart_description,
|
|
sparepart_foto: data.sparepart_foto,
|
|
sparepart_stok: data.sparepart_stok,
|
|
sparepart_model: data.sparepart_model,
|
|
sparepart_merk: data.sparepart_merk,
|
|
sparepart_qty: data.sparepart_qty,
|
|
sparepart_item_type: data.sparepart_item_type,
|
|
sparepart_unit: data.sparepart_unit,
|
|
updated_at: data.updated_at,
|
|
updated_by: data.updated_by
|
|
};
|
|
const updated = await updateSparepartDb(id, updateData);
|
|
if (!updated) throw new ErrorHandler(500, "Failed to update Sparepart");
|
|
return await this.getSparepartById(id);
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
|
}
|
|
}
|
|
|
|
static async deleteSparepart(id, userId) {
|
|
try {
|
|
const existing = await getSparepartByIdDb(id);
|
|
if (!existing) throw new ErrorHandler(404, "Sparepart not found");
|
|
const deleted = await deleteSparepartDb(id, userId);
|
|
if (!deleted) throw new ErrorHandler(500, "Failed to delete Sparepart");
|
|
return deleted;
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
|
}
|
|
}
|
|
}
|
|
module.exports = SparepartService;
|