From 6ac2cb4346530dcb0bac95ba57a4a7432a6a6784 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 21 Jun 2021 18:39:56 +0300 Subject: [PATCH] allow pure v5 challenges --- src/common/helper.js | 4 ++++ src/services/SubmissionService.js | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/common/helper.js b/src/common/helper.js index c6f91ed5..bdfa6984 100755 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -313,6 +313,10 @@ function * getLegacyChallengeId (challengeId) { const response = yield request.get(`${config.CHALLENGEAPI_V5_URL}/${challengeId}`) .set('Authorization', `Bearer ${token}`) .set('Content-Type', 'application/json') + if (_.get(response.body, 'legacy.pureV5')) { + // pure V5 challenges don't have a legacy ID + return null + } const legacyId = parseInt(response.body.legacyId, 10) logger.debug(`Legacy challenge id is ${legacyId} for v5 challenge id ${challengeId}`) return legacyId diff --git a/src/services/SubmissionService.js b/src/services/SubmissionService.js index 35dc0122..ffa47058 100755 --- a/src/services/SubmissionService.js +++ b/src/services/SubmissionService.js @@ -282,13 +282,16 @@ function * createSubmission (authUser, files, entity) { url: url, memberId: entity.memberId, challengeId, - legacyChallengeId, created: currDate, updated: currDate, createdBy: authUser.handle || authUser.sub, updatedBy: authUser.handle || authUser.sub } + if (legacyChallengeId) { + item.legacyChallengeId = legacyChallengeId + } + if (entity.legacySubmissionId) { item.legacySubmissionId = entity.legacySubmissionId } @@ -411,13 +414,15 @@ function * _updateSubmission (authUser, submissionId, entity) { id: submissionId }, UpdateExpression: `set #type = :t, #url = :u, memberId = :m, challengeId = :c, - legacyChallengeId = :lc, updated = :ua, updatedBy = :ub, submittedDate = :sb`, + ${legacyChallengeId ? 'legacyChallengeId = :lc,' : ''} updated = :ua, updatedBy = :ub, submittedDate = :sb`, ExpressionAttributeValues: { ':t': entity.type || exist.type, ':u': entity.url || exist.url, ':m': entity.memberId || exist.memberId, ':c': challengeId, - ':lc': legacyChallengeId, + ...(legacyChallengeId ? { + ':lc': legacyChallengeId + } : {}), ':ua': currDate, ':ub': authUser.handle || authUser.sub, ':sb': entity.submittedDate || exist.submittedDate || exist.created