diff --git a/src/services/ResourceService.js b/src/services/ResourceService.js index 0602185..13769ca 100644 --- a/src/services/ResourceService.js +++ b/src/services/ResourceService.js @@ -211,6 +211,14 @@ async function init (currentUser, challengeId, resource, isCreated) { const challengeRes = await helper.getRequest(`${config.CHALLENGE_API_URL}/${challengeId}`) const challenge = challengeRes.body + // Prevent from creating more than 1 submitter resources on tasks + if (_.get(challenge, 'task.isTask', false) && isCreated && resource.roleId === config.SUBMITTER_RESOURCE_ROLE_ID) { + const existing = await getResources(currentUser, challengeId, config.SUBMITTER_RESOURCE_ROLE_ID, 1, 1) + if (existing.total > 0) { + throw new errors.ConflictError(`The Task is already assigned`) + } + } + // logger.error(`Init Member for ${JSON.stringify(currentUser)}`) // get member information using v3 API const handle = resource.memberHandle