Files
cod-api/services/sparepart.service.js

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;