|
|
@@ -1,6 +1,6 @@
|
|
1
|
1
|
import { Survey } from '../entities/index.js'
|
|
2
|
2
|
import { fetchQuestions } from '../services/index.js'
|
|
3
|
|
-import { splash, possible, surveyStages } from './lang.js'
|
|
|
3
|
+import { splash, possible, surveyStages, allSteps } from './lang.js'
|
|
4
|
4
|
|
|
5
|
5
|
class SurveyFactory {
|
|
6
|
6
|
constructor() {
|
|
|
@@ -10,6 +10,7 @@ class SurveyFactory {
|
|
10
|
10
|
responseKeys.forEach((key, i) => {
|
|
11
|
11
|
key.survey_stage = surveyStages[i]
|
|
12
|
12
|
})
|
|
|
13
|
+ // return responseKeys
|
|
13
|
14
|
}
|
|
14
|
15
|
_addResponses(responseKeys, responsesByCategory) {
|
|
15
|
16
|
Object.keys(responsesByCategory).forEach(k => {
|
|
|
@@ -37,13 +38,25 @@ class SurveyFactory {
|
|
37
|
38
|
})
|
|
38
|
39
|
return responseKeys
|
|
39
|
40
|
}
|
|
40
|
|
- // TODO: in _setSteps(), reorder survey steps based off of allSteps in lang.js
|
|
|
41
|
+ _sortSurveySteps(mutatedResponseKeys, allSteps) {
|
|
|
42
|
+ let reordered = []
|
|
|
43
|
+ Object.values(allSteps).forEach((step, i) => {
|
|
|
44
|
+ Object.values(mutatedResponseKeys).forEach((val) => {
|
|
|
45
|
+ if (val.survey_stage === step) {
|
|
|
46
|
+ reordered[i] = val
|
|
|
47
|
+ }
|
|
|
48
|
+ } )
|
|
|
49
|
+ })
|
|
|
50
|
+ return reordered
|
|
|
51
|
+ }
|
|
41
|
52
|
_setSteps() {
|
|
42
|
53
|
const responseKeys = this.questionsFromDb
|
|
43
|
54
|
const responsesByCategory = possible['usa']
|
|
44
|
55
|
let mutatedResponseKeys = this._addSurveyStages(responseKeys, surveyStages)
|
|
45
|
56
|
mutatedResponseKeys = this._addResponses(responseKeys, responsesByCategory)
|
|
46
|
57
|
mutatedResponseKeys = this._addComponents(responseKeys)
|
|
|
58
|
+ // mutatedResponseKeys[0].reordered = this._sortSurveySteps(mutatedResponseKeys, allSteps['usa'])
|
|
|
59
|
+ mutatedResponseKeys = this._sortSurveySteps(mutatedResponseKeys, allSteps['usa'])
|
|
47
|
60
|
// Splash page is placed at beginning of survey
|
|
48
|
61
|
mutatedResponseKeys.unshift(splash)
|
|
49
|
62
|
return mutatedResponseKeys
|