From a86c9781b0629595695b8e25b32c0b845887f1be Mon Sep 17 00:00:00 2001 From: imcaizheng Date: Sat, 6 Feb 2021 15:14:26 +0800 Subject: [PATCH] Update joi schemas to allow null values --- src/services/JobCandidateProcessorService.js | 24 ++--------- src/services/JobProcessorService.js | 43 +++++-------------- .../ResourceBookingProcessorService.js | 36 ++++------------ 3 files changed, 22 insertions(+), 81 deletions(-) diff --git a/src/services/JobCandidateProcessorService.js b/src/services/JobCandidateProcessorService.js index 837e42b..ed4fdd1 100644 --- a/src/services/JobCandidateProcessorService.js +++ b/src/services/JobCandidateProcessorService.js @@ -97,8 +97,10 @@ processCreate.schema = { userId: Joi.string().uuid().required(), createdAt: Joi.date().required(), createdBy: Joi.string().uuid().required(), + updatedAt: Joi.date().allow(null), + updatedBy: Joi.string().uuid().allow(null), status: Joi.jobCandidateStatus().required(), - externalId: Joi.string(), + externalId: Joi.string().allow(null), resume: Joi.string().uri() }).required() }).required(), @@ -127,25 +129,7 @@ async function processUpdate (message, transactionId) { }) } -processUpdate.schema = { - message: Joi.object().keys({ - topic: Joi.string().required(), - originator: Joi.string().required(), - timestamp: Joi.date().required(), - 'mime-type': Joi.string().required(), - payload: Joi.object().keys({ - id: Joi.string().uuid(), - jobId: Joi.string().uuid(), - userId: Joi.string().uuid(), - status: Joi.jobCandidateStatus(), - externalId: Joi.string(), - resume: Joi.string().uri(), - updatedAt: Joi.date(), - updatedBy: Joi.string().uuid() - }).required() - }).required(), - transactionId: Joi.string().required() -} +processUpdate.schema = processCreate.schema /** * Process delete entity message diff --git a/src/services/JobProcessorService.js b/src/services/JobProcessorService.js index 37ab5c0..b12e2fa 100644 --- a/src/services/JobProcessorService.js +++ b/src/services/JobProcessorService.js @@ -69,18 +69,20 @@ processCreate.schema = { payload: Joi.object().keys({ id: Joi.string().uuid().required(), projectId: Joi.number().integer().required(), - externalId: Joi.string(), - description: Joi.stringAllowEmpty(), + externalId: Joi.string().allow(null), + description: Joi.stringAllowEmpty().allow(null), title: Joi.title().required(), - startDate: Joi.date(), - endDate: Joi.date(), + startDate: Joi.date().allow(null), + endDate: Joi.date().allow(null), numPositions: Joi.number().integer().min(1).required(), - resourceType: Joi.stringAllowEmpty(), - rateType: Joi.rateType(), - workload: Joi.workload(), + resourceType: Joi.stringAllowEmpty().allow(null), + rateType: Joi.rateType().allow(null), + workload: Joi.workload().allow(null), skills: Joi.array().items(Joi.string().uuid()).required(), createdAt: Joi.date().required(), createdBy: Joi.string().uuid().required(), + updatedAt: Joi.date().allow(null), + updatedBy: Joi.string().uuid().allow(null), status: Joi.jobStatus().required() }).required() }).required(), @@ -109,32 +111,7 @@ async function processUpdate (message, transactionId) { }) } -processUpdate.schema = { - message: Joi.object().keys({ - topic: Joi.string().required(), - originator: Joi.string().required(), - timestamp: Joi.date().required(), - 'mime-type': Joi.string().required(), - payload: Joi.object().keys({ - id: Joi.string().uuid().required(), - projectId: Joi.number().integer(), - externalId: Joi.string(), - description: Joi.stringAllowEmpty(), - title: Joi.title(), - startDate: Joi.date(), - endDate: Joi.date(), - numPositions: Joi.number().integer().min(1), - resourceType: Joi.stringAllowEmpty(), - rateType: Joi.rateType(), - workload: Joi.workload(), - skills: Joi.array().items(Joi.string().uuid()), - status: Joi.jobStatus(), - updatedAt: Joi.date(), - updatedBy: Joi.string().uuid() - }).required() - }).required(), - transactionId: Joi.string().required() -} +processUpdate.schema = processCreate.schema /** * Process delete entity message diff --git a/src/services/ResourceBookingProcessorService.js b/src/services/ResourceBookingProcessorService.js index d7264bf..48b82c2 100644 --- a/src/services/ResourceBookingProcessorService.js +++ b/src/services/ResourceBookingProcessorService.js @@ -37,14 +37,16 @@ processCreate.schema = { id: Joi.string().uuid().required(), projectId: Joi.number().integer().required(), userId: Joi.string().uuid().required(), - jobId: Joi.string().uuid(), - startDate: Joi.date(), - endDate: Joi.date(), - memberRate: Joi.number(), - customerRate: Joi.number(), + jobId: Joi.string().uuid().allow(null), + startDate: Joi.date().allow(null), + endDate: Joi.date().allow(null), + memberRate: Joi.number().allow(null), + customerRate: Joi.number().allow(null), rateType: Joi.rateType().required(), createdAt: Joi.date().required(), createdBy: Joi.string().uuid().required(), + updatedAt: Joi.date().allow(null), + updatedBy: Joi.string().uuid().allow(null), status: Joi.jobStatus().required() }).required() }).required(), @@ -69,29 +71,7 @@ async function processUpdate (message, transactionId) { }) } -processUpdate.schema = { - message: Joi.object().keys({ - topic: Joi.string().required(), - originator: Joi.string().required(), - timestamp: Joi.date().required(), - 'mime-type': Joi.string().required(), - payload: Joi.object().keys({ - id: Joi.string().uuid().required(), - projectId: Joi.number().integer(), - userId: Joi.string().uuid(), - jobId: Joi.string().uuid(), - startDate: Joi.date(), - endDate: Joi.date(), - memberRate: Joi.number(), - customerRate: Joi.number(), - rateType: Joi.rateType(), - status: Joi.jobStatus(), - updatedAt: Joi.date(), - updatedBy: Joi.string().uuid() - }).required() - }).required(), - transactionId: Joi.string().required() -} +processUpdate.schema = processCreate.schema /** * Process delete entity message