|
|
@@ -6,14 +6,21 @@ class SurveyFactory {
|
|
6
|
6
|
constructor() {
|
|
7
|
7
|
this.questionsFromDb = []
|
|
8
|
8
|
}
|
|
9
|
|
- _addResponses(responseKeys, possibleResponsesByCategory) {
|
|
|
9
|
+ async _addResponses(responseKeys, possibleResponsesByCategory) {
|
|
|
10
|
+ const validFormInputs = {}
|
|
10
|
11
|
Object.keys(possibleResponsesByCategory).forEach(categoryKey => {
|
|
|
12
|
+ if (possibleResponsesByCategory[categoryKey].length) {
|
|
|
13
|
+ validFormInputs[categoryKey] = possibleResponsesByCategory[categoryKey]
|
|
|
14
|
+ }
|
|
|
15
|
+ })
|
|
|
16
|
+ Object.keys(validFormInputs).forEach(inputKey => {
|
|
11
|
17
|
responseKeys.forEach(responseKey => {
|
|
12
|
|
- if (possibleResponsesByCategory[categoryKey].length) {
|
|
13
|
|
- responseKey.responses = possibleResponsesByCategory[categoryKey]
|
|
|
18
|
+ if (responseKey.survey_stage == inputKey) {
|
|
|
19
|
+ responseKey.responses = validFormInputs[inputKey]
|
|
14
|
20
|
}
|
|
15
|
21
|
})
|
|
16
|
22
|
})
|
|
|
23
|
+ console.log('responseKeys >>', responseKeys)
|
|
17
|
24
|
return responseKeys
|
|
18
|
25
|
}
|
|
19
|
26
|
_addComponents(responseKeys) {
|
|
|
@@ -32,9 +39,19 @@ class SurveyFactory {
|
|
32
|
39
|
})
|
|
33
|
40
|
return responseKeys
|
|
34
|
41
|
}
|
|
|
42
|
+ _addSurveySteps(responseKeys, surveyStages) {
|
|
|
43
|
+ responseKeys.forEach(responseKey => {
|
|
|
44
|
+ Object.keys(surveyStages).forEach((stage, i) => {
|
|
|
45
|
+ if (responseKey.response_key_id == stage) {
|
|
|
46
|
+ responseKey.survey_stage = surveyStages[i + 1]
|
|
|
47
|
+ }
|
|
|
48
|
+ })
|
|
|
49
|
+ })
|
|
|
50
|
+ return responseKeys
|
|
|
51
|
+ }
|
|
35
|
52
|
// TODO: Don't nest the for loop...
|
|
36
|
53
|
_sortSurveySteps(mutatedResponseKeys, allSteps) {
|
|
37
|
|
- const reordered = []
|
|
|
54
|
+ const reordered = []
|
|
38
|
55
|
Object.values(allSteps).forEach(step => {
|
|
39
|
56
|
Object.values(mutatedResponseKeys).forEach(val => {
|
|
40
|
57
|
if (surveyStages[val.response_key_id] === step) {
|
|
|
@@ -48,7 +65,8 @@ class SurveyFactory {
|
|
48
|
65
|
_setSteps() {
|
|
49
|
66
|
const responseKeys = this.questionsFromDb
|
|
50
|
67
|
const responsesByCategory = possible['usa']
|
|
51
|
|
- let mutatedResponseKeys = this._addResponses(responseKeys, responsesByCategory)
|
|
|
68
|
+ let mutatedResponseKeys = this._addSurveySteps(responseKeys, surveyStages)
|
|
|
69
|
+ mutatedResponseKeys = this._addResponses(mutatedResponseKeys, responsesByCategory)
|
|
52
|
70
|
mutatedResponseKeys = this._addComponents(responseKeys)
|
|
53
|
71
|
mutatedResponseKeys = this._sortSurveySteps(mutatedResponseKeys, allSteps['usa'])
|
|
54
|
72
|
// Splash page is placed at beginning of survey
|