Bläddra i källkod

:recycle: tweaking endpoint to accept profile_id instead of passing with payload

tags/0.0.1
TOJ 4 år sedan
förälder
incheckning
3be64db775

+ 8
- 3
backend/lib/routes/membership/join.js Visa fil

@@ -9,8 +9,8 @@ const pluginConfig = {
9 9
 }
10 10
 
11 11
 const validators = {
12
+    params: Joi.object({ profile_id: Joi.number() }),
12 13
     payload: Joi.object({
13
-        profile_id: Joi.number().required(),
14 14
         target_id: Joi.number().required(),
15 15
         grouping_id: Joi.number().allow(null),
16 16
         grouping_name: Joi.string().allow(null),
@@ -31,7 +31,7 @@ const responseSchemas = {
31 31
 
32 32
 module.exports = {
33 33
     method: 'POST',
34
-    path: '/join',
34
+    path: '/{profile_id}/join',
35 35
     options: {
36 36
         ...pluginConfig.docs,
37 37
         tags: ['api'],
@@ -49,6 +49,7 @@ module.exports = {
49 49
                 const { membershipService } = request.server.services()
50 50
 
51 51
                 /** Grab payload info */
52
+                const profileId = request.params.profile_id
52 53
                 const res = request.payload
53 54
                 const groupingToWrite = {
54 55
                     grouping_id: res.grouping_id,
@@ -59,10 +60,14 @@ module.exports = {
59 60
                 /** Default to participant role */
60 61
                 const role = res.role ? res.role : 'participant'
61 62
 
63
+                // TODO: LIMIT the amount of groupings by checking type
64
+                // !: You should only be able to match with the target_id ONCE
65
+                // !: You should only be associated with a single company too
62 66
                 console.log('---')
67
+
63 68
                 /** User membership service method to create membership */
64 69
                 const memberships = await membershipService.joinGrouping(
65
-                    res.profile_id,
70
+                    profileId,
66 71
                     res.target_id,
67 72
                     groupingToWrite,
68 73
                     role,

+ 1
- 1
frontend/src/App.vue Visa fil

@@ -69,7 +69,7 @@ export default {
69 69
             }
70 70
             console.log(groupings)
71 71
             groupings = []
72
-            await postMembershipByProfileId({ profileId: 1, targetId: 20 })
72
+            await postMembershipByProfileId({ profileId: 1, targetId: 22 })
73 73
             for(let p of tempProfiles) {
74 74
                 const memberships = await fetchMembershipsByProfileId(p.profile_id)
75 75
                 groupings.push(memberships)

+ 1
- 3
frontend/src/services/grouping.service.js Visa fil

@@ -22,13 +22,11 @@ const fetchMembershipsByProfileId = async profileId => {
22 22
 
23 23
 const postMembershipByProfileId = async ({ profileId, targetId, groupingType = 'match' }) => {
24 24
     const membership = {
25
-        profile_id: profileId,
26 25
         target_id: targetId,
27 26
         grouping_type: groupingType,
28 27
         grouping_name: `delete_${profileId}_${targetId}`
29 28
     }
30
-    const createdMembershipRecord = await db.post(`/membership/join`, membership)
31
-    console.log(createdMembershipRecord)
29
+    const createdMembershipRecord = await db.post(`/membership/${profileId}/join`, membership)
32 30
     return createdMembershipRecord
33 31
 }
34 32
 export { fetchMembershipsByProfileId, postMembershipByProfileId }

Laddar…
Avbryt
Spara