Skip to content

Commit d408dff

Browse files
Auto generate phases if not provided
1 parent 6f5ef16 commit d408dff

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

src/services/ChallengeService.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -722,13 +722,20 @@ async function validateChallengeData (challenge) {
722722
* @param {String} timelineTemplateId the timeline template id
723723
*/
724724
async function populatePhases (phases, startDate, timelineTemplateId) {
725-
if (!phases || phases.length === 0) {
726-
return
727-
}
728725
if (_.isUndefined(timelineTemplateId)) {
729726
throw new errors.BadRequestError(`Invalid timeline template ID: ${timelineTemplateId}`)
730727
}
731728
const template = await helper.getById('TimelineTemplate', timelineTemplateId)
729+
if (!phases || phases.length === 0) {
730+
// auto populate phases
731+
phases = []
732+
for (const p in template.phases) {
733+
phases.push({
734+
phaseId: p.phaseId,
735+
duration: p.defaultDuration
736+
})
737+
}
738+
}
732739
const phaseDefinitions = await helper.scan('Phase')
733740
// generate phase instance ids
734741
for (let i = 0; i < phases.length; i += 1) {
@@ -861,7 +868,11 @@ async function createChallenge (currentUser, challenge, userToken) {
861868
throw new errors.BadRequestError(`trackId and typeId are required to create a challenge`)
862869
}
863870
}
864-
if (challenge.timelineTemplateId && challenge.phases && challenge.phases.length > 0) {
871+
872+
if (challenge.timelineTemplateId) {
873+
if (!challenge.phases) {
874+
challenge.phases = []
875+
}
865876
await populatePhases(challenge.phases, challenge.startDate, challenge.timelineTemplateId)
866877
}
867878

@@ -1306,7 +1317,7 @@ async function update (currentUser, challengeId, data, userToken, isFull) {
13061317
}
13071318
}
13081319
}
1309-
const newPhases = challenge.phases
1320+
const newPhases = challenge.phases || []
13101321
const newStartDate = data.startDate || challenge.startDate
13111322

13121323
await helper.validatePhases(newPhases)

0 commit comments

Comments
 (0)