repair: brand device connect to sparepart
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
const {
|
||||
getAllBrandsDb,
|
||||
getBrandByIdDb,
|
||||
getBrandByNameDb,
|
||||
createBrandDb,
|
||||
updateBrandDb,
|
||||
deleteBrandDb,
|
||||
@@ -12,7 +11,6 @@ const {
|
||||
const {
|
||||
insertMultipleBrandSparepartsDb,
|
||||
updateBrandSparepartsDb,
|
||||
deleteAllBrandSparepartsDb,
|
||||
getSparepartsByBrandIdDb,
|
||||
} = require("../db/brand_sparepart.db");
|
||||
|
||||
@@ -24,6 +22,9 @@ const {
|
||||
deleteErrorCodeDb,
|
||||
} = require("../db/brand_code.db");
|
||||
|
||||
// Sparepart operations
|
||||
const { getSparepartsByIdsDb } = require("../db/sparepart.db");
|
||||
|
||||
// Solution operations
|
||||
const {
|
||||
getSolutionsByErrorCodeIdDb,
|
||||
@@ -236,12 +237,33 @@ class BrandService {
|
||||
}
|
||||
}
|
||||
|
||||
// Validate sparepart id
|
||||
static async validateSparepartIds(sparepartIds) {
|
||||
if (!sparepartIds || !Array.isArray(sparepartIds) || sparepartIds.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const existingSpareparts = await getSparepartsByIdsDb(sparepartIds);
|
||||
|
||||
if (existingSpareparts.length !== sparepartIds.length) {
|
||||
const existingIds = existingSpareparts.map(sp => sp.sparepart_id);
|
||||
const invalidIds = sparepartIds.filter(id => !existingIds.includes(id));
|
||||
throw new ErrorHandler(400, `Invalid sparepart IDs: ${invalidIds.join(', ')}`);
|
||||
}
|
||||
|
||||
return existingSpareparts;
|
||||
}
|
||||
|
||||
// Update brand
|
||||
static async updateBrandWithFullData(id, data) {
|
||||
try {
|
||||
const existingBrand = await getBrandByIdDb(id);
|
||||
if (!existingBrand) throw new ErrorHandler(404, "Brand not found");
|
||||
|
||||
if (data.spareparts) {
|
||||
await this.validateSparepartIds(data.spareparts);
|
||||
}
|
||||
|
||||
if (data.brand_name && data.brand_name !== existingBrand.brand_name) {
|
||||
const brandExists = await checkBrandNameExistsDb(data.brand_name, id);
|
||||
if (brandExists) {
|
||||
|
||||
Reference in New Issue
Block a user