From 8c27f8bc2f76b6d6ceaf72a20da75a7229dedd87 Mon Sep 17 00:00:00 2001 From: vikasrohit Date: Fri, 24 Jul 2020 09:20:10 +0530 Subject: [PATCH] Respecting v5 challenge startDate Using challenge startDate for the first phase of legacy challenge --- src/services/ProcessorService.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index e9bfe52..a681371 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -157,17 +157,18 @@ async function parsePayload (payload, m2mToken, isCreated = true) { if (payload.phases) { const registrationPhase = _.find(payload.phases, p => p.phaseId === config.REGISTRATION_PHASE_ID) const submissionPhase = _.find(payload.phases, p => p.phaseId === config.SUBMISSION_PHASE_ID) - data.registrationStartsAt = new Date().toISOString() - data.registrationEndsAt = new Date(Date.now() + (registrationPhase || submissionPhase).duration).toISOString() + const startDate = payload.startDate ? new Date(payload.startDate) : new Date() + data.registrationStartsAt = startDate.toISOString() + data.registrationEndsAt = new Date(startDate.getTime() + (registrationPhase || submissionPhase).duration).toISOString() data.registrationDuration = (registrationPhase || submissionPhase).duration - data.submissionEndsAt = new Date(Date.now() + submissionPhase.duration).toISOString() + data.submissionEndsAt = new Date(startDate.getTime() + submissionPhase.duration).toISOString() data.submissionDuration = submissionPhase.duration // Only Design can have checkpoint phase and checkpoint prizes const checkpointPhase = _.find(payload.phases, p => p.phaseId === config.CHECKPOINT_SUBMISSION_PHASE_ID) if (checkpointPhase) { - data.checkpointSubmissionStartsAt = new Date().toISOString() - data.checkpointSubmissionEndsAt = new Date(Date.now() + checkpointPhase.duration).toISOString() + data.checkpointSubmissionStartsAt = startDate.toISOString() + data.checkpointSubmissionEndsAt = new Date(startDate.getTime() + checkpointPhase.duration).toISOString() data.checkpointSubmissionDuration = checkpointPhase.duration } else { data.checkpointSubmissionStartsAt = null @@ -301,7 +302,8 @@ processCreate.schema = { tags: Joi.array().items(Joi.string().required()), // tag names projectId: Joi.number().integer().positive().required(), copilotId: Joi.number().integer().positive().optional(), - status: Joi.string().valid(_.values(Object.keys(constants.createChallengeStatusesMap))).required() + status: Joi.string().valid(_.values(Object.keys(constants.createChallengeStatusesMap))).required(), + startDate: Joi.date(), }).unknown(true).required() }).required() } @@ -414,7 +416,8 @@ processUpdate.schema = { }).unknown(true)) }).unknown(true)).min(1), tags: Joi.array().items(Joi.string().required()).min(1), // tag names - projectId: Joi.number().integer().positive().allow(null) + projectId: Joi.number().integer().positive().allow(null), + startDate: Joi.date() }).unknown(true).required() }).required() }