diff --git a/.circleci/config.yml b/.circleci/config.yml index 00ab761..ef3f880 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -72,7 +72,7 @@ workflows: only: - dev - dev-circleci - - feature/shapeup4-cqrs-update2 + - gigs-job-model # Production builds are exectuted only on tagged commits to the # master branch. diff --git a/src/bootstrap.js b/src/bootstrap.js index fd4b8ea..057dcd9 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -8,6 +8,7 @@ Joi.rateType = () => Joi.string().valid('hourly', 'daily', 'weekly', 'monthly', Joi.jobStatus = () => Joi.string().valid('sourcing', 'in-review', 'assigned', 'closed', 'cancelled') Joi.jobCandidateStatus = () => Joi.string().valid('open', 'placed', 'selected', 'client rejected - screening', 'client rejected - interview', 'rejected - other', 'cancelled', 'interview', 'topcoder-rejected', 'applied', 'rejected-pre-screen', 'skills-test', 'skills-test', 'phone-screen', 'job-closed', 'offered', 'withdrawn', 'withdrawn-prescreen') Joi.workload = () => Joi.string().valid('full-time', 'fractional') +Joi.jobTag = () => Joi.string().valid('new', 'dollor', 'hot').allow('') Joi.title = () => Joi.string().max(128) // Empty string is not allowed by Joi by default and must be enabled with allow(''). // See https://joi.dev/api/?v=17.3.0#string fro details why it's like this. diff --git a/src/services/JobCandidateProcessorService.js b/src/services/JobCandidateProcessorService.js index 765ca44..5a9d287 100644 --- a/src/services/JobCandidateProcessorService.js +++ b/src/services/JobCandidateProcessorService.js @@ -77,30 +77,30 @@ async function processUpdate (message, transactionId) { processUpdate.schema = Joi.object() .keys({ message: Joi.object() - .keys({ - topic: Joi.string().required(), - originator: Joi.string().required(), - timestamp: Joi.date().required(), - 'mime-type': Joi.string().required(), - key: Joi.string().allow(null), - payload: Joi.object() - .keys({ - id: Joi.string().uuid().required(), - jobId: Joi.string().uuid().required(), - userId: Joi.string().uuid().required(), - createdAt: Joi.date().required(), - createdBy: Joi.string().uuid().required(), - updatedAt: Joi.date().allow(null), - viewedByCustomer: Joi.boolean().required(), - updatedBy: Joi.string().uuid().allow(null), - status: Joi.jobCandidateStatus().required(), - externalId: Joi.string().allow(null), - resume: Joi.string().uri().allow(null).allow(''), - remark: Joi.stringAllowEmpty().allow(null) - }) - .required() - }) - .required(), + .keys({ + topic: Joi.string().required(), + originator: Joi.string().required(), + timestamp: Joi.date().required(), + 'mime-type': Joi.string().required(), + key: Joi.string().allow(null), + payload: Joi.object() + .keys({ + id: Joi.string().uuid().required(), + jobId: Joi.string().uuid().required(), + userId: Joi.string().uuid().required(), + createdAt: Joi.date().required(), + createdBy: Joi.string().uuid().required(), + updatedAt: Joi.date().allow(null), + viewedByCustomer: Joi.boolean().required(), + updatedBy: Joi.string().uuid().allow(null), + status: Joi.jobCandidateStatus().required(), + externalId: Joi.string().allow(null), + resume: Joi.string().uri().allow(null).allow(''), + remark: Joi.stringAllowEmpty().allow(null) + }) + .required() + }) + .required(), transactionId: Joi.string().required() }) diff --git a/src/services/JobProcessorService.js b/src/services/JobProcessorService.js index a581f91..351c123 100644 --- a/src/services/JobProcessorService.js +++ b/src/services/JobProcessorService.js @@ -87,7 +87,11 @@ processCreate.schema = Joi.object() currency: Joi.stringAllowEmpty().allow(null), roleIds: Joi.array() .items(Joi.string().uuid().required()) - .allow(null) + .allow(null), + showInHotList: Joi.boolean().default(false), + featured: Joi.boolean().default(false), + hotListExcerpt: Joi.stringAllowEmpty().default(''), + jobTag: Joi.jobTag().default('') }) .required() })