Skip to content

Commit 11f0b6b

Browse files
authored
Merge pull request #102 from topcoder-platform/feature/update-job-start-date-format
support Job Start Date format without time
2 parents 7222947 + 58e34e6 commit 11f0b6b

File tree

6 files changed

+98
-86
lines changed

6 files changed

+98
-86
lines changed

package-lock.json

Lines changed: 43 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
"superagent": "^5.1.0"
1919
},
2020
"dependencies": {
21-
"@hapi/joi": "^15.1.0",
21+
"@joi/date": "^2.1.0",
2222
"async-mutex": "^0.2.4",
2323
"bluebird": "^3.5.5",
2424
"config": "^3.1.0",
2525
"dotenv": "^10.0.0",
2626
"get-parameter-names": "^0.3.0",
27+
"joi": "^17.4.2",
2728
"lodash": "^4.17.20",
2829
"no-kafka": "^3.4.3",
2930
"tc-core-library-js": "^2.4.1",

src/bootstrap.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const Joi = require('@hapi/joi')
1+
const Joi = require('joi')
22
const config = require('config')
33
const constants = require('./common/constants')
44

src/common/logger.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44

55
const _ = require('lodash')
6-
const Joi = require('@hapi/joi')
6+
const Joi = require('joi')
77
const util = require('util')
88
const config = require('config')
99
const getParams = require('get-parameter-names')

src/services/JobCandidateProcessorService.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Jobcandidate Processor Service
33
*/
44

5-
const Joi = require('@hapi/joi')
5+
const Joi = require('joi')
66
const logger = require('../common/logger')
77
const helper = require('../common/helper')
88
const constants = require('../common/constants')
@@ -74,8 +74,9 @@ async function processUpdate (message, transactionId) {
7474
})
7575
}
7676

77-
processUpdate.schema = {
78-
message: Joi.object()
77+
processUpdate.schema = Joi.object()
78+
.keys({
79+
message: Joi.object()
7980
.keys({
8081
topic: Joi.string().required(),
8182
originator: Joi.string().required(),
@@ -100,8 +101,8 @@ processUpdate.schema = {
100101
.required()
101102
})
102103
.required(),
103-
transactionId: Joi.string().required()
104-
}
104+
transactionId: Joi.string().required()
105+
})
105106

106107
module.exports = {
107108
processUpdate

src/services/JobProcessorService.js

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Job Processor Service
33
*/
44

5-
const Joi = require('@hapi/joi')
5+
const Joi = require('joi').extend(require('@joi/date'))
66
const logger = require('../common/logger')
77
const helper = require('../common/helper')
88
const constants = require('../common/constants')
@@ -50,49 +50,50 @@ async function processCreate (message, transactionId) {
5050
})
5151
}
5252

53-
processCreate.schema = {
54-
message: Joi.object()
55-
.keys({
56-
topic: Joi.string().required(),
57-
originator: Joi.string().required(),
58-
timestamp: Joi.date().required(),
59-
'mime-type': Joi.string().required(),
60-
payload: Joi.object()
61-
.keys({
62-
id: Joi.string().uuid().required(),
63-
projectId: Joi.number().integer().required(),
64-
externalId: Joi.string().allow(null),
65-
description: Joi.stringAllowEmpty().allow(null),
66-
title: Joi.title().required(),
67-
startDate: Joi.date().allow(null),
68-
duration: Joi.number().integer().min(1).allow(null),
69-
numPositions: Joi.number().integer().min(1).required(),
70-
resourceType: Joi.stringAllowEmpty().allow(null),
71-
rateType: Joi.rateType().allow(null),
72-
workload: Joi.workload().allow(null),
73-
skills: Joi.array().items(Joi.string().uuid()).required(),
74-
roles: Joi.array().items(Joi.string().uuid()).allow(null),
75-
createdAt: Joi.date().required(),
76-
createdBy: Joi.string().uuid().required(),
77-
updatedAt: Joi.date().allow(null),
78-
updatedBy: Joi.string().uuid().allow(null),
79-
status: Joi.jobStatus().required(),
80-
isApplicationPageActive: Joi.boolean().required(),
81-
minSalary: Joi.number().integer().allow(null),
82-
maxSalary: Joi.number().integer().allow(null),
83-
hoursPerWeek: Joi.number().integer().allow(null),
84-
jobLocation: Joi.stringAllowEmpty().allow(null),
85-
jobTimezone: Joi.stringAllowEmpty().allow(null),
86-
currency: Joi.stringAllowEmpty().allow(null),
87-
roleIds: Joi.array()
88-
.items(Joi.string().uuid().required())
89-
.allow(null)
90-
})
91-
.required()
92-
})
93-
.required(),
94-
transactionId: Joi.string().required()
95-
}
53+
processCreate.schema = Joi.object()
54+
.keys({
55+
message: Joi.object()
56+
.keys({
57+
topic: Joi.string().required(),
58+
originator: Joi.string().required(),
59+
timestamp: Joi.date().required(),
60+
'mime-type': Joi.string().required(),
61+
payload: Joi.object()
62+
.keys({
63+
id: Joi.string().uuid().required(),
64+
projectId: Joi.number().integer().required(),
65+
externalId: Joi.string().allow(null),
66+
description: Joi.stringAllowEmpty().allow(null),
67+
title: Joi.title().required(),
68+
startDate: Joi.date().format('YYYY-MM-DD').allow(null),
69+
duration: Joi.number().integer().min(1).allow(null),
70+
numPositions: Joi.number().integer().min(1).required(),
71+
resourceType: Joi.stringAllowEmpty().allow(null),
72+
rateType: Joi.rateType().allow(null),
73+
workload: Joi.workload().allow(null),
74+
skills: Joi.array().items(Joi.string().uuid()).required(),
75+
roles: Joi.array().items(Joi.string().uuid()).allow(null),
76+
createdAt: Joi.date().required(),
77+
createdBy: Joi.string().uuid().required(),
78+
updatedAt: Joi.date().allow(null),
79+
updatedBy: Joi.string().uuid().allow(null),
80+
status: Joi.jobStatus().required(),
81+
isApplicationPageActive: Joi.boolean().required(),
82+
minSalary: Joi.number().integer().allow(null),
83+
maxSalary: Joi.number().integer().allow(null),
84+
hoursPerWeek: Joi.number().integer().allow(null),
85+
jobLocation: Joi.stringAllowEmpty().allow(null),
86+
jobTimezone: Joi.stringAllowEmpty().allow(null),
87+
currency: Joi.stringAllowEmpty().allow(null),
88+
roleIds: Joi.array()
89+
.items(Joi.string().uuid().required())
90+
.allow(null)
91+
})
92+
.required()
93+
})
94+
.required(),
95+
transactionId: Joi.string().required()
96+
})
9697

9798
/**
9899
* Process update entity message

0 commit comments

Comments
 (0)