example for template master device

This commit is contained in:
2025-10-10 14:53:43 +07:00
parent 6eed13bc4f
commit ab3b38eb49
9 changed files with 266 additions and 226 deletions

View File

@@ -1,81 +1,87 @@
const {
getAllDevicesDb,
getDeviceByIdDb,
getDeviceByCodeDb,
createDeviceDb,
updateDeviceDb,
softDeleteDeviceDb,
searchDevicesDb
deleteDeviceDb
} = require('../db/device.db');
const { ErrorHandler } = require('../helpers/error');
class DeviceService {
// Get all devices
static async getAllDevices(search) {
if (!search || search.trim() === '') {
return await getAllDevicesDb();
static async getAllDevices(param) {
try {
const results = await getAllDevicesDb(param);
results.data.map(element => {
});
return results
} catch (error) {
throw new ErrorHandler(error.statusCode, error.message);
}
return await searchDevicesDb(search);
}
// Get device by ID
static async getDeviceById(id) {
const device = await getDeviceByIdDb(id);
if (!device) throw new ErrorHandler(404, 'Device not found');
return device;
}
try {
const result = await getDeviceByIdDb(id);
// Get device by code
static async getDeviceByCode(code) {
const device = await getDeviceByCodeDb(code);
if (!device) throw new ErrorHandler(404, 'Device not found');
return device;
if (result.length < 1) throw new ErrorHandler(404, 'Device not found');
return result;
} catch (error) {
throw new ErrorHandler(error.statusCode, error.message);
}
}
// Create device
static async createDevice(data, userId) {
if (!data || typeof data !== 'object') data = {};
static async createDevice(data) {
try {
if (!data || typeof data !== 'object') data = {};
data.created_by = userId;
const result = await createDeviceDb(data);
// Cek kode unik
const existingDevice = await getDeviceByCodeDb(data.device_code);
if (existingDevice) {
throw new ErrorHandler(400, 'Device code already exists');
return result;
} catch (error) {
throw new ErrorHandler(error.statusCode, error.message);
}
const newDevice = await createDeviceDb(data);
return newDevice;
}
// Update device
static async updateDevice(id, data, user_Id) {
if (!data || typeof data !== 'object') data = {};
static async updateDevice(id, data) {
try {
if (!data || typeof data !== 'object') data = {};
const existingDevice = await getDeviceByIdDb(id);
if (!existingDevice) {
throw new ErrorHandler(404, 'Device not found');
const dataExist = await getDeviceByIdDb(id);
if (dataExist.length < 1) {
throw new ErrorHandler(404, 'Device not found');
}
const result = await updateDeviceDb(id, data);
return result;
} catch (error) {
throw new ErrorHandler(error.statusCode, error.message);
}
data.updated_by = user_Id;
const updatedDevice = await updateDeviceDb(id, data);
return {
message: 'Device updated successfully',
data: updatedDevice,
};
}
// Soft delete device
static async deleteDevice(id, userId) {
const existingDevice = await getDeviceByIdDb(id);
if (!existingDevice) {
throw new ErrorHandler(404, 'Device not found');
}
try {
const dataExist = await getDeviceByIdDb(id);
await softDeleteDeviceDb(id, userId);
return { message: 'Device deleted successfully' };
if (dataExist.length < 1) {
throw new ErrorHandler(404, 'Device not found');
}
const result = await deleteDeviceDb(id, userId);
return result;
} catch (error) {
throw new ErrorHandler(error.statusCode, error.message);
}
}
}