Skip to content

Commit d61181c

Browse files
author
James Cori
committed
Merge branch 'develop'
2 parents 59963c9 + 777b666 commit d61181c

File tree

4 files changed

+35
-42
lines changed

4 files changed

+35
-42
lines changed

Diff for: package.json

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"drop-tables": "node src/scripts/drop-tables.js",
1414
"create-tables": "node src/scripts/create-tables.js",
1515
"seed-tables": "node src/scripts/seed-tables.js",
16+
"check-timeline-templates": "node src/scripts/check-templates.js",
1617
"view-data": "node src/scripts/view-data.js",
1718
"view-es-data": "node src/scripts/view-es-data.js",
1819
"test": "mocha --require test/prepare.js -t 20000 test/unit/*.test.js --exit",

Diff for: src/scripts/check-templates.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const _ = require('lodash')
2+
const axios = require('axios')
3+
const TEMPLATE_ID = '2d0807fa-ece1-4328-a260-76f5f6b559e0' // RUX challenge
4+
// const TEMPLATE_ID = '7ebf1c69-f62f-4d3a-bdfb-fe9ddb56861c' // dev challenge
5+
// const TEMPLATE_ID = 'd4201ca4-8437-4d63-9957-3f7708184b07' // design with checkpoint
6+
async function main () {
7+
let res
8+
res = await axios.get('http://api.topcoder-dev.com/v5/timeline-templates')
9+
const template = _.find(res.data, entry => entry.id === TEMPLATE_ID)
10+
res = await axios.get('http://api.topcoder-dev.com/v5/challenge-phases')
11+
const phases = res.data
12+
_.each(template.phases, (phase) => {
13+
const phaseInstance = _.find(phases, p => p.id === phase.phaseId)
14+
const pred = phase.predecessor ? _.find(phases, p => p.id === phase.predecessor) : null
15+
console.log(`Phase Length: ${phase.defaultDuration / 60 / 60} hrs \t ${phaseInstance.name} - Depends on ${pred ? pred.name : 'nothing'}`)
16+
})
17+
}
18+
main()

Diff for: src/scripts/seed/TimelineTemplate.json

+13-40
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22
{
33
"id": "7ebf1c69-f62f-4d3a-bdfb-fe9ddb56861c",
44
"name": "Default Challenge",
5-
"description": "Standard Default Challenge Timeline",
5+
"description": "Default Challenge Timeline",
66
"isActive": true,
77
"phases": [
88
{
99
"phaseId": "a93544bc-c165-4af4-b55e-18f3593b457a",
10-
"defaultDuration": 172800
10+
"defaultDuration": 432000
1111
},
1212
{
1313
"phaseId": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
14-
"predecessor": "a93544bc-c165-4af4-b55e-18f3593b457a",
1514
"defaultDuration": 432000
1615
},
1716
{
@@ -22,12 +21,12 @@
2221
{
2322
"phaseId": "1c24cfb3-5b0a-4dbd-b6bd-4b0dff5349c6",
2423
"predecessor": "aa5a3f78-79e0-4bf7-93ff-b11e8f5b398b",
25-
"defaultDuration": 43200
24+
"defaultDuration": 86400
2625
},
2726
{
2827
"phaseId": "797a6af7-cd3f-4436-9fca-9679f773bee9",
2928
"predecessor": "1c24cfb3-5b0a-4dbd-b6bd-4b0dff5349c6",
30-
"defaultDuration": 57600
29+
"defaultDuration": 43200
3130
}
3231
]
3332
},
@@ -44,7 +43,6 @@
4443
},
4544
{
4645
"phaseId": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
47-
"predecessor": "a93544bc-c165-4af4-b55e-18f3593b457a",
4846
"defaultDuration": 345600
4947
},
5048
{
@@ -55,7 +53,7 @@
5553
{
5654
"phaseId": "1c24cfb3-5b0a-4dbd-b6bd-4b0dff5349c6",
5755
"predecessor": "aa5a3f78-79e0-4bf7-93ff-b11e8f5b398b",
58-
"defaultDuration": 43200
56+
"defaultDuration": 86400
5957
},
6058
{
6159
"phaseId": "797a6af7-cd3f-4436-9fca-9679f773bee9",
@@ -92,7 +90,6 @@
9290
},
9391
{
9492
"phaseId": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
95-
"predecessor": "a93544bc-c165-4af4-b55e-18f3593b457a",
9693
"defaultDuration": 1209600
9794
},
9895
{
@@ -106,33 +103,20 @@
106103
{
107104
"id": "d4201ca4-8437-4d63-9957-3f7708184b07",
108105
"name": "Design with Checkpoints",
109-
"description": "Standard Design challenge timeline",
106+
"description": "Standard Design Challenge Timeline",
110107
"isActive": true,
111108
"phases": [
112-
{
113-
"phaseId": "fb21431c-119e-4bc7-b447-d0af3f2be6b4",
114-
"defaultDuration": 86400
115-
},
116-
{
117-
"phaseId": "2752454b-0952-4a42-a4f0-f3fb88a9b065",
118-
"predecessor": "fb21431c-119e-4bc7-b447-d0af3f2be6b4",
119-
"defaultDuration": 43200
120-
},
121-
122109
{
123110
"phaseId": "a93544bc-c165-4af4-b55e-18f3593b457a",
124-
"predecessor": "2752454b-0952-4a42-a4f0-f3fb88a9b065",
125-
"defaultDuration": 345600
111+
"defaultDuration": 518400
126112
},
127113
{
128114
"phaseId": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
129-
"predecessor": "a93544bc-c165-4af4-b55e-18f3593b457a",
130-
"defaultDuration": 777600
115+
"defaultDuration": 518400
131116
},
132117
{
133118
"phaseId": "d8a2cdbe-84d1-4687-ab75-78a6a7efdcc8",
134-
"predecessor": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
135-
"defaultDuration": 302400
119+
"defaultDuration": 259200
136120
},
137121
{
138122
"phaseId": "ce1afb4c-74f9-496b-9e4b-087ae73ab032",
@@ -142,31 +126,21 @@
142126
{
143127
"phaseId": "84b43897-2aab-44d6-a95a-42c433657eed",
144128
"predecessor": "ce1afb4c-74f9-496b-9e4b-087ae73ab032",
145-
"defaultDuration": 302400
129+
"defaultDuration": 172800
146130
},
147131
{
148132
"phaseId": "2d7d3d85-0b29-4989-b3b4-be7f2b1d0aa6",
149-
"predecessor": "84b43897-2aab-44d6-a95a-42c433657eed",
150-
"defaultDuration": 43200
133+
"predecessor": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
134+
"defaultDuration": 14400
151135
},
152136
{
153137
"phaseId": "aa5a3f78-79e0-4bf7-93ff-b11e8f5b398b",
154138
"predecessor": "2d7d3d85-0b29-4989-b3b4-be7f2b1d0aa6",
155139
"defaultDuration": 432000
156140
},
157-
{
158-
"phaseId": "3e2afca6-9542-4763-a135-96b33f12c082",
159-
"predecessor": "aa5a3f78-79e0-4bf7-93ff-b11e8f5b398b",
160-
"defaultDuration": 172800
161-
},
162-
{
163-
"phaseId": "f3acaf26-1dd5-42ae-9f0d-8eb0fd24ae59",
164-
"predecessor": "3e2afca6-9542-4763-a135-96b33f12c082",
165-
"defaultDuration": 86400
166-
},
167141
{
168142
"phaseId": "ad985cff-ad3e-44de-b54e-3992505ba0ae",
169-
"predecessor": "f3acaf26-1dd5-42ae-9f0d-8eb0fd24ae59",
143+
"predecessor": "aa5a3f78-79e0-4bf7-93ff-b11e8f5b398b",
170144
"defaultDuration": 172800
171145
}
172146
]
@@ -183,7 +157,6 @@
183157
},
184158
{
185159
"phaseId": "6950164f-3c5e-4bdc-abc8-22aaf5a1bd49",
186-
"predecessor": "a93544bc-c165-4af4-b55e-18f3593b457a",
187160
"defaultDuration": 172800
188161
},
189162
{

Diff for: src/services/ChallengeService.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -744,6 +744,7 @@ async function populatePhases (phases, startDate, timelineTemplateId) {
744744
for (let i = 0; i < phases.length; i += 1) {
745745
phases[i].id = uuid()
746746
}
747+
747748
for (let i = 0; i < phases.length; i += 1) {
748749
const phase = phases[i]
749750
const templatePhase = _.find(template.phases, (p) => p.phaseId === phase.phaseId)
@@ -761,7 +762,7 @@ async function populatePhases (phases, startDate, timelineTemplateId) {
761762
if (!prePhase) {
762763
throw new errors.BadRequestError(`Predecessor ${templatePhase.predecessor} not found from given phases.`)
763764
}
764-
phase.predecessor = prePhase.id
765+
phase.predecessor = prePhase.phaseId
765766
}
766767
}
767768
}
@@ -788,7 +789,7 @@ async function populatePhases (phases, startDate, timelineTemplateId) {
788789
done[i] = true
789790
doing = true
790791
} else {
791-
const preIndex = _.findIndex(phases, (p) => p.id === phase.predecessor)
792+
const preIndex = _.findIndex(phases, (p) => p.phaseId === phase.predecessor)
792793
let canProcess = true
793794
if (preIndex < 0) {
794795
canProcess = false

0 commit comments

Comments
 (0)