Ver código fonte

:recycle: Refactor of profiler logic

tags/0.0.3^2
tomit4 2 anos atrás
pai
commit
d717f141e7

+ 1
- 1
backend/lib/schemas/profiles.js Ver arquivo

13
     responses: surveyResponseSchema.list,
13
     responses: surveyResponseSchema.list,
14
     reveal: Joi.array().items(),
14
     reveal: Joi.array().items(),
15
     tags: tagSchema.list,
15
     tags: tagSchema.list,
16
-    image: Joi.any(),
16
+    media: Joi.any(),
17
     blurb: Joi.any(),
17
     blurb: Joi.any(),
18
     user_type: Joi.any(),
18
     user_type: Joi.any(),
19
     user: userSchema.single,
19
     user: userSchema.single,

+ 11
- 7
backend/lib/services/profile/profiler.js Ver arquivo

25
         this.profile_id = profile.profile_id // int profile_id
25
         this.profile_id = profile.profile_id // int profile_id
26
         this.responses = profile.responses
26
         this.responses = profile.responses
27
         this.user_type = type
27
         this.user_type = type
28
-
28
+        this.blurb = ''
29
+        this.profile_media = []
30
+        this.profile_languages = []
29
         this.profile_prefs = this.getPrefsFromResponses(this.responses)
31
         this.profile_prefs = this.getPrefsFromResponses(this.responses)
30
 
32
 
31
         otherProfileInfo.forEach(prefName => {
33
         otherProfileInfo.forEach(prefName => {
32
             if (prefName == 'blurb') {
34
             if (prefName == 'blurb') {
33
-                this.profile_description = this.responses.find(
35
+                const blurbRes = this.responses.find(
34
                     r => r.response_key_id === config.blurbKey,
36
                     r => r.response_key_id === config.blurbKey,
35
-                ).val
37
+                )
38
+                this.profile_description = blurbRes ? blurbRes.val : ''
36
             } else if (['media', 'lang'].includes(prefName)) {
39
             } else if (['media', 'lang'].includes(prefName)) {
37
                 const key =
40
                 const key =
38
                     prefName == 'media'
41
                     prefName == 'media'
39
                         ? `profile_${prefName}`
42
                         ? `profile_${prefName}`
40
                         : [`profile_${prefName}uages`]
43
                         : [`profile_${prefName}uages`]
41
-                this[key] = this.responses
42
-                    .filter(r => r.response_key_id === config[`${prefName}Key`])
43
-                    .map(r => r.val)
44
+                const resForKey = this.responses.filter(
45
+                    r => r.response_key_id === config[`${prefName}Key`],
46
+                )
47
+                this[key] = resForKey.length ? resForKey.map(r => r.val) : []
44
             }
48
             }
45
         })
49
         })
46
         // TODO: These should be getters
50
         // TODO: These should be getters
54
         return unscoredProfilePreferences.reduce((byPref, prefName) => {
58
         return unscoredProfilePreferences.reduce((byPref, prefName) => {
55
             byPref[prefName] = this.responses.find(
59
             byPref[prefName] = this.responses.find(
56
                 r => config[`${prefName}Key`] == r.response_key_id,
60
                 r => config[`${prefName}Key`] == r.response_key_id,
57
-            ).val
61
+            )?.val
58
             return byPref
62
             return byPref
59
         }, {})
63
         }, {})
60
     }
64
     }

Carregando…
Cancelar
Salvar