Просмотр исходного кода

:poop: Poor implementation of saving place in survey

juan_spike
tomit4 3 лет назад
Родитель
Сommit
259d566c1c
1 измененных файлов: 48 добавлений и 20 удалений
  1. 48
    20
      frontend/src/views/OnboardingView.vue

+ 48
- 20
frontend/src/views/OnboardingView.vue Просмотреть файл

70
         this.authenticator = new Authenticator()
70
         this.authenticator = new Authenticator()
71
 
71
 
72
         if (document.cookie.length) {
72
         if (document.cookie.length) {
73
-            // TODO: Remove this this.answered section when:
74
-            // SurveyCompleteView calls all responses from db
73
+            // TODO: Heavy Refactor needed, obvious code smells
75
             // BUG: NEEDS BROWSER REFRESH TO SEE UPDATED COOKIES
74
             // BUG: NEEDS BROWSER REFRESH TO SEE UPDATED COOKIES
76
-            const siimeeAnswered = this.grabCookie(
77
-                document.cookie,
78
-                'siimee_answered',
79
-            )
75
+            const siimeeAnswered = this.grabCookie('siimee_answered')
76
+            const myCurrentStep = this.grabCookie('siimee_current_step')
77
+            console.log('myCurrentStep :=>', myCurrentStep)
80
             if (siimeeAnswered) {
78
             if (siimeeAnswered) {
81
-                const siimeeAnswers = JSON.parse(
82
-                    this.grabCookie(document.cookie, 'siimee_answered'),
83
-                )
84
-                this.sessionToken = this.grabCookie(
85
-                    document.cookie,
86
-                    'siimee_session',
87
-                )
79
+                const siimeeAnswers = JSON.parse(siimeeAnswered)
80
+                this.sessionToken = this.grabCookie('siimee_session')
88
                 const sessionTokenIsValid =
81
                 const sessionTokenIsValid =
89
                     await this.authenticator.validateJwt(this.sessionToken)
82
                     await this.authenticator.validateJwt(this.sessionToken)
90
-                this.accessToken = this.grabCookie(
91
-                    document.cookie,
92
-                    'siimee_access',
93
-                )
83
+                this.accessToken = this.grabCookie('siimee_access')
94
                 if (sessionTokenIsValid.isValid) {
84
                 if (sessionTokenIsValid.isValid) {
95
                     this.answered = {
85
                     this.answered = {
96
                         name: siimeeAnswers.name,
86
                         name: siimeeAnswers.name,
98
                         seeking: siimeeAnswers.seeking,
88
                         seeking: siimeeAnswers.seeking,
99
                     }
89
                     }
100
                     this.currentProfileId = siimeeAnswers.profile_id
90
                     this.currentProfileId = siimeeAnswers.profile_id
101
-                    this.goToStep(6)
91
+                    this.currentStep = 6
92
+                    this.responses = [
93
+                        { response_key_id: 8, val: siimeeAnswers.email },
94
+                        { response_key_id: 7, val: siimeeAnswers.name },
95
+                        { response_key_id: 11, val: siimeeAnswers.seeking },
96
+                    ]
97
+                    document.cookie = `siimee_current_step=${this.currentStep}; max-age=600 ; path=/onboarding ; secure`
98
+                    document.cookie = `siimee_cache_answered=${JSON.stringify(
99
+                        this.answered,
100
+                    )}; max-age=600 ; path=/onboarding ; secure`
101
+                    document.cookie = `siimee_cache_responses=${JSON.stringify(
102
+                        this.responses,
103
+                    )}; max-age=600 ; path=/onboarding ; secure`
104
+                    document.cookie = 'siimee_answered='
105
+                    this.goToStep(this.currentStep)
102
                 }
106
                 }
103
-            } else this.goToStep(0)
107
+            } else if (myCurrentStep) {
108
+                const myCurrentAnswers = this.grabCookie(
109
+                    'siimee_cache_answered',
110
+                )
111
+                const myCurrentResponses = this.grabCookie(
112
+                    'siimee_cache_responses',
113
+                )
114
+                this.answered = JSON.parse(myCurrentAnswers)
115
+                this.responses = JSON.parse(myCurrentResponses)
116
+                this.currentStep = myCurrentStep
117
+                this.goToStep(Number(myCurrentStep) + 1)
118
+            } else {
119
+                this.goToStep(0)
120
+            }
104
         }
121
         }
105
     },
122
     },
106
     methods: {
123
     methods: {
108
             console.log(JSON.stringify(this.answered))
125
             console.log(JSON.stringify(this.answered))
109
         },
126
         },
110
         async goToStep(num) {
127
         async goToStep(num) {
128
+            document.cookie = `siimee_current_step=${Number(
129
+                this.currentStep,
130
+            )}; max-age=600 ; path=/onboarding ; secure`
131
+            document.cookie = `siimee_cache_answered=${JSON.stringify(
132
+                this.answered,
133
+            )}; max-age=600 ; path=/onboarding ; secure`
134
+            document.cookie = `siimee_cache_responses=${JSON.stringify(
135
+                this.responses,
136
+            )}; max-age=600 ; path=/onboarding ; secure`
137
+
111
             if (num > 6) {
138
             if (num > 6) {
112
                 this.validateAccessToken()
139
                 this.validateAccessToken()
113
             }
140
             }
137
                 return true
164
                 return true
138
             } else return false
165
             } else return false
139
         },
166
         },
140
-        grabCookie(cookieString, cookieKey) {
167
+        grabCookie(cookieKey) {
168
+            const cookieString = document.cookie
141
             const cookies = cookieString.split('; ').reduce((prev, current) => {
169
             const cookies = cookieString.split('; ').reduce((prev, current) => {
142
                 const [name, ...value] = current.split('=')
170
                 const [name, ...value] = current.split('=')
143
                 prev[name] = value.join('=')
171
                 prev[name] = value.join('=')

Загрузка…
Отмена
Сохранить