From 7910d14799a653d3dcf7996a4a9b48d974aedbfd Mon Sep 17 00:00:00 2001 From: xxcxy Date: Mon, 15 Feb 2021 21:13:54 +0800 Subject: [PATCH] Create member endpoint should return member details #628 --- docs/Project API.postman_collection.json | 49 ++++++++++++++++++++++++ src/routes/projectMembers/create.js | 7 ++++ 2 files changed, 56 insertions(+) diff --git a/docs/Project API.postman_collection.json b/docs/Project API.postman_collection.json index 8035b068..71167a99 100644 --- a/docs/Project API.postman_collection.json +++ b/docs/Project API.postman_collection.json @@ -925,6 +925,55 @@ }, "response": [] }, + { + "name": "Create project member with no payload and return member details", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status code is 201\", function () {", + " pm.response.to.have.status(201);", + " pm.environment.set(\"memberId\", pm.response.json().id);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "Bearer {{jwt-token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "{{api-url}}/projects/{{projectId}}/members?fields=id,userId,role,isPrimary,deletedAt,createdAt,updatedAt,deletedBy,createdBy,updatedBy,handle,photoURL,workingHourStart,workingHourEnd,timeZone,email", + "host": [ + "{{api-url}}" + ], + "path": [ + "projects", + "{{projectId}}", + "members" + ], + "query": [ + { + "key": "fields", + "value": "id,userId,role,isPrimary,deletedAt,createdAt,updatedAt,deletedBy,createdBy,updatedBy,handle,photoURL,workingHourStart,workingHourEnd,timeZone,email" + } + ] + }, + "description": "If the request payload is valid, than project customer should be added. This should sync with the direct project is project is associated with direct project." + }, + "response": [] + }, { "name": "Update project member", "request": { diff --git a/src/routes/projectMembers/create.js b/src/routes/projectMembers/create.js index 1d15991a..fd35fd26 100644 --- a/src/routes/projectMembers/create.js +++ b/src/routes/projectMembers/create.js @@ -80,6 +80,13 @@ module.exports = [ newMember = await util.addUserToProject(req, member, transaction); }); + try { + const fields = req.query.fields ? req.query.fields.split(',') : null; + [newMember] = await util.getObjectsWithMemberDetails([newMember], fields, req); + } catch (err) { + req.log.error('Cannot get user details for member.'); + req.log.debug('Error during getting user details for member.', err); + } return res.status(201).json(newMember); } catch (err) { return next(err);