Merge pull request 'wisdom' (#45) from wisdom into main
Reviewed-on: #45
This commit is contained in:
@@ -14,6 +14,7 @@ const getAllSparepartDb = async (searchParams = {}) => {
|
|||||||
const { whereOrConditions, whereParamOr } = pool.buildStringOrIlike(
|
const { whereOrConditions, whereParamOr } = pool.buildStringOrIlike(
|
||||||
[
|
[
|
||||||
"a.sparepart_name",
|
"a.sparepart_name",
|
||||||
|
"a.sparepart_number",
|
||||||
"a.sparepart_code",
|
"a.sparepart_code",
|
||||||
"a.sparepart_model",
|
"a.sparepart_model",
|
||||||
"a.updated_at",
|
"a.updated_at",
|
||||||
@@ -28,6 +29,7 @@ const getAllSparepartDb = async (searchParams = {}) => {
|
|||||||
const { whereConditions, whereParamAnd } = pool.buildFilterQuery(
|
const { whereConditions, whereParamAnd } = pool.buildFilterQuery(
|
||||||
[
|
[
|
||||||
{ column: "a.sparepart_name", param: searchParams.code, type: "string" },
|
{ column: "a.sparepart_name", param: searchParams.code, type: "string" },
|
||||||
|
{ column: "a.sparepart_number", param: searchParams.code, type: "string" },
|
||||||
{
|
{
|
||||||
column: "a.sparepart_code",
|
column: "a.sparepart_code",
|
||||||
param: searchParams.location,
|
param: searchParams.location,
|
||||||
@@ -156,6 +158,7 @@ const getSparepartsByIdsDb = async (sparepartIds) => {
|
|||||||
SELECT
|
SELECT
|
||||||
sparepart_id,
|
sparepart_id,
|
||||||
sparepart_name,
|
sparepart_name,
|
||||||
|
sparepart_number,
|
||||||
sparepart_code,
|
sparepart_code,
|
||||||
sparepart_description,
|
sparepart_description,
|
||||||
sparepart_model,
|
sparepart_model,
|
||||||
@@ -165,6 +168,7 @@ const getSparepartsByIdsDb = async (sparepartIds) => {
|
|||||||
sparepart_unit,
|
sparepart_unit,
|
||||||
sparepart_merk,
|
sparepart_merk,
|
||||||
sparepart_stok,
|
sparepart_stok,
|
||||||
|
sparepart_yearly,
|
||||||
created_at,
|
created_at,
|
||||||
updated_at
|
updated_at
|
||||||
FROM m_sparepart
|
FROM m_sparepart
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ class SparepartService {
|
|||||||
throw new ErrorHandler(404, "Sparepart not found");
|
throw new ErrorHandler(404, "Sparepart not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sparepart[0].sparepart_yearly = JSON.parse(sparepart[0].sparepart_yearly);
|
||||||
|
|
||||||
return sparepart[0];
|
return sparepart[0];
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new ErrorHandler(error.statusCode || 500, error.message);
|
throw new ErrorHandler(error.statusCode || 500, error.message);
|
||||||
@@ -42,6 +44,11 @@ class SparepartService {
|
|||||||
if (exists)
|
if (exists)
|
||||||
throw new ErrorHandler(400, "Sparepart name already exists");
|
throw new ErrorHandler(400, "Sparepart name already exists");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.sparepart_yearly) {
|
||||||
|
data.sparepart_yearly = JSON.stringify(data.sparepart_yearly);
|
||||||
|
}
|
||||||
|
|
||||||
const created = await createSparepartDb(data);
|
const created = await createSparepartDb(data);
|
||||||
if (!created) throw new ErrorHandler(500, "Failed to create Sparepart");
|
if (!created) throw new ErrorHandler(500, "Failed to create Sparepart");
|
||||||
return created;
|
return created;
|
||||||
@@ -65,6 +72,11 @@ class SparepartService {
|
|||||||
if (exists)
|
if (exists)
|
||||||
throw new ErrorHandler(400, "Sparepart name already exists");
|
throw new ErrorHandler(400, "Sparepart name already exists");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.sparepart_yearly) {
|
||||||
|
data.sparepart_yearly = JSON.stringify(data.sparepart_yearly);
|
||||||
|
}
|
||||||
|
|
||||||
const updated = await updateSparepartDb(id, data);
|
const updated = await updateSparepartDb(id, data);
|
||||||
if (!updated) throw new ErrorHandler(500, "Failed to update Sparepart");
|
if (!updated) throw new ErrorHandler(500, "Failed to update Sparepart");
|
||||||
return await this.getSparepartById(id);
|
return await this.getSparepartById(id);
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ const insertDeviceSchema = Joi.object({
|
|||||||
.messages({
|
.messages({
|
||||||
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
||||||
}),
|
}),
|
||||||
listen_channel: Joi.string().max(100).required()
|
listen_channel: Joi.string().max(100).required(),
|
||||||
|
listen_channel_reminder: Joi.string().max(100).optional(),
|
||||||
|
reminder_at: Joi.date().iso().allow(null).optional()
|
||||||
});
|
});
|
||||||
|
|
||||||
const updateDeviceSchema = Joi.object({
|
const updateDeviceSchema = Joi.object({
|
||||||
@@ -30,7 +32,10 @@ const updateDeviceSchema = Joi.object({
|
|||||||
.messages({
|
.messages({
|
||||||
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
'string.ip': 'IP address must be a valid IPv4 or IPv6 address'
|
||||||
}),
|
}),
|
||||||
listen_channel: Joi.string().max(100)
|
listen_channel: Joi.string().max(100),
|
||||||
|
listen_channel_reminder: Joi.string().max(100).optional(),
|
||||||
|
reminder_at: Joi.date().iso().allow(null).optional()
|
||||||
|
|
||||||
}).min(1);
|
}).min(1);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ const Joi = require("joi");
|
|||||||
// ========================
|
// ========================
|
||||||
const insertSparepartSchema = Joi.object({
|
const insertSparepartSchema = Joi.object({
|
||||||
sparepart_name: Joi.string().max(255).required(),
|
sparepart_name: Joi.string().max(255).required(),
|
||||||
|
sparepart_number: Joi.string().max(255).optional(),
|
||||||
sparepart_description: Joi.string().max(255).optional(),
|
sparepart_description: Joi.string().max(255).optional(),
|
||||||
sparepart_model: Joi.string().max(255).optional(),
|
sparepart_model: Joi.string().max(255).optional(),
|
||||||
sparepart_foto: Joi.string().max(255).optional().allow(""),
|
sparepart_foto: Joi.string().max(255).optional().allow(""),
|
||||||
@@ -12,11 +13,17 @@ const insertSparepartSchema = Joi.object({
|
|||||||
sparepart_unit: Joi.string().max(255).optional(),
|
sparepart_unit: Joi.string().max(255).optional(),
|
||||||
sparepart_merk: Joi.string().max(255).optional(),
|
sparepart_merk: Joi.string().max(255).optional(),
|
||||||
sparepart_stok: Joi.string().max(255).optional(),
|
sparepart_stok: Joi.string().max(255).optional(),
|
||||||
|
sparepart_yearly: Joi.array()
|
||||||
|
.items(Joi.number().integer())
|
||||||
|
.min(0)
|
||||||
|
.allow(null)
|
||||||
|
.optional()
|
||||||
});
|
});
|
||||||
|
|
||||||
// Update Validation
|
// Update Validation
|
||||||
const updateSparepartSchema = Joi.object({
|
const updateSparepartSchema = Joi.object({
|
||||||
sparepart_name: Joi.string().max(255).optional(),
|
sparepart_name: Joi.string().max(255).optional(),
|
||||||
|
sparepart_number: Joi.string().max(255).optional(),
|
||||||
sparepart_description: Joi.string().max(255).optional(),
|
sparepart_description: Joi.string().max(255).optional(),
|
||||||
sparepart_model: Joi.string().max(255).optional(),
|
sparepart_model: Joi.string().max(255).optional(),
|
||||||
sparepart_foto: Joi.string().max(255).optional().allow(''),
|
sparepart_foto: Joi.string().max(255).optional().allow(''),
|
||||||
@@ -25,6 +32,11 @@ const updateSparepartSchema = Joi.object({
|
|||||||
sparepart_unit: Joi.string().max(255).optional(),
|
sparepart_unit: Joi.string().max(255).optional(),
|
||||||
sparepart_merk: Joi.string().max(255).optional(),
|
sparepart_merk: Joi.string().max(255).optional(),
|
||||||
sparepart_stok: Joi.string().max(255).optional(),
|
sparepart_stok: Joi.string().max(255).optional(),
|
||||||
|
sparepart_yearly: Joi.array()
|
||||||
|
.items(Joi.number().integer())
|
||||||
|
.min(0)
|
||||||
|
.allow(null)
|
||||||
|
.optional()
|
||||||
});
|
});
|
||||||
module.exports = {
|
module.exports = {
|
||||||
insertSparepartSchema,
|
insertSparepartSchema,
|
||||||
|
|||||||
Reference in New Issue
Block a user