89 lines
2.7 KiB
JavaScript
89 lines
2.7 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 || sparepart.length === 0) {
|
|
throw new ErrorHandler(404, "Sparepart not found");
|
|
}
|
|
|
|
return sparepart[0];
|
|
} 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 created = await createSparepartDb(data);
|
|
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 updated = await updateSparepartDb(id, data);
|
|
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;
|