Skip to content

Commit b43ad96

Browse files
support pure v5 tasks
1 parent d9050e7 commit b43ad96

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/common/helper.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,11 +647,12 @@ async function ensureProjectExist (projectId, currentUser) {
647647
try {
648648
const res = await axios.get(url, { headers: { Authorization: `Bearer ${token}` } })
649649
if (currentUser.isMachine || hasAdminRole(currentUser)) {
650-
return
650+
return res.data
651651
}
652652
if (!_.find(_.get(res, 'data.members', []), m => _.toString(m.userId) === _.toString(currentUser.userId))) {
653653
throw new errors.ForbiddenError(`You don't have access to project with ID: ${projectId}`)
654654
}
655+
return res.data
655656
} catch (err) {
656657
if (_.get(err, 'response.status') === HttpStatus.NOT_FOUND) {
657658
throw new errors.BadRequestError(`Project with id: ${projectId} doesn't exist`)

src/services/ChallengeService.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,10 @@ async function createChallenge (currentUser, challenge) {
828828
if (challenge.status === constants.challengeStatuses.Active) {
829829
throw new errors.BadRequestError('You cannot create an Active challenge. Please create a Draft challenge and then change the status to Active.')
830830
}
831-
await helper.ensureProjectExist(challenge.projectId, currentUser)
831+
const { directProjectId } = await helper.ensureProjectExist(challenge.projectId, currentUser)
832+
if (_.get(challenge, 'legacy.pureV5Task')) {
833+
_.set(challenge, 'legacy.directProjectId', directProjectId)
834+
}
832835
const { track, type } = await validateChallengeData(challenge)
833836
if (_.get(type, 'isTask')) {
834837
_.set(challenge, 'task.isTask', true)
@@ -972,7 +975,8 @@ createChallenge.schema = {
972975
screeningScorecardId: Joi.number().integer(),
973976
reviewScorecardId: Joi.number().integer(),
974977
isTask: Joi.boolean(),
975-
useSchedulingAPI: Joi.boolean()
978+
useSchedulingAPI: Joi.boolean(),
979+
pureV5Task: Joi.boolean()
976980
}),
977981
task: Joi.object().keys({
978982
isTask: Joi.boolean().default(false),
@@ -1199,7 +1203,7 @@ async function update (currentUser, challengeId, data, isFull) {
11991203
let billingAccountId
12001204
if (data.status) {
12011205
if (data.status === constants.challengeStatuses.Active) {
1202-
if (_.isUndefined(_.get(challenge, 'legacy.directProjectId'))) {
1206+
if (!_.get(challenge, 'legacy.pureV5Task') && _.isUndefined(_.get(challenge, 'legacy.directProjectId'))) {
12031207
throw new errors.BadRequestError('You cannot activate the challenge as it has not been created on legacy yet. Please try again later or contact support.')
12041208
}
12051209
billingAccountId = await helper.getProjectBillingAccount(_.get(challenge, 'legacy.directProjectId'))
@@ -1230,6 +1234,9 @@ async function update (currentUser, challengeId, data, isFull) {
12301234
if (_.get(challenge, 'legacy.useSchedulingAPI') && _.get(data, 'legacy.useSchedulingAPI') && _.get(challenge, 'legacy.useSchedulingAPI') !== _.get(data, 'legacy.useSchedulingAPI')) {
12311235
throw new errors.ForbiddenError('Cannot change legacy.useSchedulingAPI')
12321236
}
1237+
if (_.get(challenge, 'legacy.pureV5Task') && _.get(data, 'legacy.pureV5Task') && _.get(challenge, 'legacy.pureV5Task') !== _.get(data, 'legacy.pureV5Task')) {
1238+
throw new errors.ForbiddenError('Cannot change legacy.pureV5Task')
1239+
}
12331240

12341241
if (!_.isUndefined(challenge.legacy) && !_.isUndefined(data.legacy)) {
12351242
_.extend(challenge.legacy, data.legacy)
@@ -1672,7 +1679,8 @@ function sanitizeChallenge (challenge) {
16721679
'screeningScorecardId',
16731680
'reviewScorecardId',
16741681
'isTask',
1675-
'useSchedulingAPI'
1682+
'useSchedulingAPI',
1683+
'pureV5Task'
16761684
])
16771685
}
16781686
if (challenge.metadata) {
@@ -1728,7 +1736,8 @@ fullyUpdateChallenge.schema = {
17281736
screeningScorecardId: Joi.number().integer(),
17291737
reviewScorecardId: Joi.number().integer(),
17301738
isTask: Joi.boolean(),
1731-
useSchedulingAPI: Joi.boolean()
1739+
useSchedulingAPI: Joi.boolean(),
1740+
pureV5Task: Joi.boolean()
17321741
}).unknown(true),
17331742
task: Joi.object().keys({
17341743
isTask: Joi.boolean().default(false),
@@ -1824,7 +1833,8 @@ partiallyUpdateChallenge.schema = {
18241833
directProjectId: Joi.number(),
18251834
forumId: Joi.number().integer(),
18261835
isTask: Joi.boolean(),
1827-
useSchedulingAPI: Joi.boolean()
1836+
useSchedulingAPI: Joi.boolean(),
1837+
pureV5Task: Joi.boolean()
18281838
}).unknown(true),
18291839
task: Joi.object().keys({
18301840
isTask: Joi.boolean().default(false),

0 commit comments

Comments
 (0)