Skip to content

Commit 39c5471

Browse files
lock deletion of resources after the challenge is completed
1 parent 940b0a0 commit 39c5471

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

app-constants.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ const UserRoles = {
99
User: 'Topcoder User'
1010
}
1111

12+
const ChallengeStatuses = {
13+
Completed: 'Completed'
14+
}
15+
1216
module.exports = {
13-
UserRoles
17+
UserRoles,
18+
ChallengeStatuses
1419
}

src/services/ResourceService.js

+5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const helper = require('../common/helper')
1212
const logger = require('../common/logger')
1313
const errors = require('../common/errors')
1414
const ResourceRolePhaseDependencyService = require('./ResourceRolePhaseDependencyService')
15+
const constants = require('../../app-constants')
1516

1617
const payloadFields = ['id', 'challengeId', 'memberId', 'memberHandle', 'roleId', 'created', 'createdBy', 'updated', 'updatedBy', 'legacyId']
1718

@@ -232,6 +233,10 @@ async function init (currentUser, challengeId, resource, isCreated) {
232233
const challengeRes = await helper.getRequest(`${config.CHALLENGE_API_URL}/${challengeId}`)
233234
const challenge = challengeRes.body
234235

236+
if (_.get(challenge, 'status') === constants.ChallengeStatuses.Completed && !isCreated) {
237+
throw new errors.BadRequestError('Cannot delete resources of a completed challenge!')
238+
}
239+
235240
// Prevent from creating more than 1 submitter resources on tasks
236241
if (_.get(challenge, 'task.isTask', false) && isCreated && resource.roleId === config.SUBMITTER_RESOURCE_ROLE_ID) {
237242
const existing = await getResources(currentUser, challengeId, config.SUBMITTER_RESOURCE_ROLE_ID, 1, 1)

0 commit comments

Comments
 (0)