Skip to content

Commit cc7749b

Browse files
authored
Merge pull request #335 from topcoder-platform/change-validatations-in-job-jc
Change validatations in job jc
2 parents e4a0201 + bf32afb commit cc7749b

File tree

5 files changed

+34
-29
lines changed

5 files changed

+34
-29
lines changed

.circleci/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ workflows:
6868
branches:
6969
only:
7070
- dev
71+
- change-validatations-in-job-jc
7172

7273
# Production builds are exectuted only on tagged commits to the
7374
# master branch.

docs/swagger.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ paths:
174174
required: false
175175
schema:
176176
type: string
177-
enum: ["hourly", "daily", "weekly", "monthly"]
177+
enum: ["hourly", "daily", "weekly", "monthly","annual"]
178178
description: The rate type.
179179
- in: query
180180
name: status

src/bootstrap.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const allowedXAITemplate = _.keys(Interviews.XaiTemplate)
1111

1212
Joi.page = () => Joi.number().integer().min(1).default(1)
1313
Joi.perPage = () => Joi.number().integer().min(1).default(20)
14-
Joi.rateType = () => Joi.string().valid('hourly', 'daily', 'weekly', 'monthly')
14+
Joi.rateType = () => Joi.string().valid('hourly', 'daily', 'weekly', 'monthly','annual')
1515
Joi.jobStatus = () => Joi.string().valid('sourcing', 'in-review', 'assigned', 'closed', 'cancelled')
1616
Joi.resourceBookingStatus = () => Joi.string().valid('placed', 'closed', 'cancelled')
1717
Joi.workload = () => Joi.string().valid('full-time', 'fractional')

src/services/JobCandidateService.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ fullyUpdateJobCandidate.schema = Joi.object().keys({
203203
userId: Joi.string().uuid().required(),
204204
status: Joi.jobCandidateStatus().default('open'),
205205
externalId: Joi.string().allow(null).default(null),
206-
resume: Joi.string().uri().allow(null).default(null),
207-
remark: Joi.string().allow(null).default(null)
206+
resume: Joi.string().uri().allow('').allow(null).default(null),
207+
remark: Joi.string().allow('').allow(null).default(null)
208208
}).required()
209209
}).required()
210210

src/services/JobService.js

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -187,31 +187,35 @@ async function createJob (currentUser, job) {
187187
return created.toJSON()
188188
}
189189

190-
createJob.schema = Joi.object().keys({
191-
currentUser: Joi.object().required(),
192-
job: Joi.object().keys({
193-
status: Joi.jobStatus().default('sourcing'),
194-
projectId: Joi.number().integer().required(),
195-
externalId: Joi.string().allow(null),
196-
description: Joi.stringAllowEmpty().allow(null),
197-
title: Joi.title().required(),
198-
startDate: Joi.date().allow(null),
199-
duration: Joi.number().integer().min(1).allow(null),
200-
numPositions: Joi.number().integer().min(1).required(),
201-
resourceType: Joi.stringAllowEmpty().allow(null),
202-
rateType: Joi.rateType().allow(null),
203-
workload: Joi.workload().allow(null),
204-
skills: Joi.array().items(Joi.string().uuid()).required(),
205-
isApplicationPageActive: Joi.boolean(),
206-
minSalary: Joi.number().integer().allow(null),
207-
maxSalary: Joi.number().integer().allow(null),
208-
hoursPerWeek: Joi.number().integer().allow(null),
209-
jobLocation: Joi.string().allow(null),
210-
jobTimezone: Joi.string().allow(null),
211-
currency: Joi.string().allow(null),
212-
roleIds: Joi.array().items(Joi.string().uuid().required())
213-
}).required()
214-
}).required()
190+
createJob.schema = Joi.object()
191+
.keys({
192+
currentUser: Joi.object().required(),
193+
job: Joi.object()
194+
.keys({
195+
status: Joi.jobStatus().default("sourcing"),
196+
projectId: Joi.number().integer().required(),
197+
externalId: Joi.string().allow(null),
198+
description: Joi.stringAllowEmpty().allow(null),
199+
title: Joi.title().required(),
200+
startDate: Joi.date().allow(null),
201+
duration: Joi.number().integer().min(1).allow(null),
202+
numPositions: Joi.number().integer().min(1).required(),
203+
resourceType: Joi.stringAllowEmpty().allow(null),
204+
rateType: Joi.rateType().allow(null),
205+
workload: Joi.workload().allow(null),
206+
skills: Joi.array().items(Joi.string().uuid()).required(),
207+
isApplicationPageActive: Joi.boolean(),
208+
minSalary: Joi.number().integer().allow(null),
209+
maxSalary: Joi.number().integer().allow(null),
210+
hoursPerWeek: Joi.number().integer().allow(null),
211+
jobLocation: Joi.string().allow(null).allow(''),
212+
jobTimezone: Joi.string().allow(null).allow(''),
213+
currency: Joi.string().allow(null).allow(''),
214+
roleIds: Joi.array().items(Joi.string().uuid().required()),
215+
})
216+
.required(),
217+
})
218+
.required();
215219

216220
/**
217221
* Update job. Normal user can only update the job he/she created.

0 commit comments

Comments
 (0)