From 7370849c6944343a0e9dbb973432aeb82b1e8601 Mon Sep 17 00:00:00 2001 From: dengjun Date: Sat, 29 May 2021 14:16:15 +0800 Subject: [PATCH] api-updates challenge:30186701 --- package.json | 2 +- src/bootstrap.js | 2 +- src/scripts/createIndex.js | 7 +++++++ src/services/JobCandidateProcessorService.js | 3 ++- src/services/JobProcessorService.js | 8 +++++++- test/messages/taas.job.create.event.json | 8 +++++++- test/messages/taas.job.update.event.json | 8 +++++++- test/messages/taas.jobcandidate.create.event.json | 3 ++- test/messages/taas.jobcandidate.update.event.json | 1 + 9 files changed, 35 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index f857c4e..7bd0c50 100644 --- a/package.json +++ b/package.json @@ -60,4 +60,4 @@ "test/e2e/*.js" ] } -} \ No newline at end of file +} diff --git a/src/bootstrap.js b/src/bootstrap.js index c3c6254..82287fc 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -12,7 +12,7 @@ global.Promise = require('bluebird') Joi.rateType = () => Joi.string().valid('hourly', 'daily', 'weekly', 'monthly') Joi.jobStatus = () => Joi.string().valid('sourcing', 'in-review', 'assigned', 'closed', 'cancelled') Joi.resourceBookingStatus = () => Joi.string().valid('placed', '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') +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') Joi.workload = () => Joi.string().valid('full-time', 'fractional') Joi.title = () => Joi.string().max(128) Joi.paymentStatus = () => Joi.string().valid('pending', 'partially-completed', 'completed', 'cancelled') diff --git a/src/scripts/createIndex.js b/src/scripts/createIndex.js index aae5c10..2199dbd 100644 --- a/src/scripts/createIndex.js +++ b/src/scripts/createIndex.js @@ -28,6 +28,12 @@ async function createIndex () { skills: { type: 'keyword' }, status: { type: 'keyword' }, isApplicationPageActive: { type: 'boolean' }, + minSalary: { type: 'integer' }, + maxSalary: { type: 'integer' }, + hoursPerWeek: { type: 'integer' }, + jobLocation: { type: 'keyword' }, + jobTimezone: { type: 'keyword' }, + currency: { type: 'keyword' }, createdAt: { type: 'date' }, createdBy: { type: 'keyword' }, updatedAt: { type: 'date' }, @@ -46,6 +52,7 @@ async function createIndex () { status: { type: 'keyword' }, externalId: { type: 'keyword' }, resume: { type: 'text' }, + remark: { type: 'keyword' }, interviews: { type: 'nested', properties: { diff --git a/src/services/JobCandidateProcessorService.js b/src/services/JobCandidateProcessorService.js index 48d8660..bde7e88 100644 --- a/src/services/JobCandidateProcessorService.js +++ b/src/services/JobCandidateProcessorService.js @@ -101,7 +101,8 @@ processCreate.schema = { updatedBy: Joi.string().uuid().allow(null), status: Joi.jobCandidateStatus().required(), externalId: Joi.string().allow(null), - resume: Joi.string().uri().allow(null) + resume: Joi.string().uri().allow(null), + remark: Joi.string().allow(null) }).required() }).required(), transactionId: Joi.string().required() diff --git a/src/services/JobProcessorService.js b/src/services/JobProcessorService.js index 678a3c3..1064635 100644 --- a/src/services/JobProcessorService.js +++ b/src/services/JobProcessorService.js @@ -83,7 +83,13 @@ processCreate.schema = { updatedAt: Joi.date().allow(null), updatedBy: Joi.string().uuid().allow(null), status: Joi.jobStatus().required(), - isApplicationPageActive: Joi.boolean().required() + isApplicationPageActive: Joi.boolean().required(), + minSalary: Joi.number().integer().required(), + maxSalary: Joi.number().integer().required(), + hoursPerWeek: Joi.number().integer().required(), + jobLocation: Joi.string().required(), + jobTimezone: Joi.string().required(), + currency: Joi.string().required() }).required() }).required(), transactionId: Joi.string().required() diff --git a/test/messages/taas.job.create.event.json b/test/messages/taas.job.create.event.json index ebc5d15..0fd3ef0 100644 --- a/test/messages/taas.job.create.event.json +++ b/test/messages/taas.job.create.event.json @@ -24,6 +24,12 @@ "createdAt": "2020-11-05T19:00:16.268Z", "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "status": "sourcing", - "isApplicationPageActive": false + "isApplicationPageActive": false, + "minSalary": 100, + "maxSalary": 200, + "hoursPerWeek": 20, + "jobLocation": "Any location", + "jobTimezone": "GMT", + "currency": "USD" } } \ No newline at end of file diff --git a/test/messages/taas.job.update.event.json b/test/messages/taas.job.update.event.json index 3be8597..0f1cb76 100644 --- a/test/messages/taas.job.update.event.json +++ b/test/messages/taas.job.update.event.json @@ -23,6 +23,12 @@ "updatedBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "createdAt": "2020-11-05T19:00:16.268Z", "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", - "isApplicationPageActive": false + "isApplicationPageActive": false, + "minSalary": 100, + "maxSalary": 200, + "hoursPerWeek": 20, + "jobLocation": "Any location", + "jobTimezone": "GMT", + "currency": "USD" } } \ No newline at end of file diff --git a/test/messages/taas.jobcandidate.create.event.json b/test/messages/taas.jobcandidate.create.event.json index 822dc80..28ba870 100644 --- a/test/messages/taas.jobcandidate.create.event.json +++ b/test/messages/taas.jobcandidate.create.event.json @@ -9,6 +9,7 @@ "id": "0cb99adb-8bcd-4952-9203-9867dd45ef6f", "createdAt": "2020-11-05T19:00:19.052Z", "createdBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", - "status": "open" + "status": "open", + "remark": "excellent" } } \ No newline at end of file diff --git a/test/messages/taas.jobcandidate.update.event.json b/test/messages/taas.jobcandidate.update.event.json index 1254087..cc6e506 100644 --- a/test/messages/taas.jobcandidate.update.event.json +++ b/test/messages/taas.jobcandidate.update.event.json @@ -8,6 +8,7 @@ "jobId": "ffbc24f7-301e-48d3-bf01-c056916056a2", "userId": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "status": "selected", + "remark": "excellent", "updatedAt": "2020-11-05T19:00:21.625Z", "updatedBy": "a55fe1bc-1754-45fa-9adc-cf3d6d7c377a", "createdAt": "2020-11-05T19:00:16.268Z",