From 2e663733602e8653b814a00606e0d7d29ce15458 Mon Sep 17 00:00:00 2001 From: Sebastian <sebastian.mihalache@thinslices.com> Date: Wed, 11 Apr 2018 12:59:46 +0300 Subject: [PATCH] feat(component-invite): fix get invitations --- .../component-invite/src/CollectionsInvitations.js | 7 +++++-- packages/component-invite/src/helpers/Invitation.js | 4 ++-- .../src/routes/collectionsInvitations/get.js | 12 +++++++----- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/component-invite/src/CollectionsInvitations.js b/packages/component-invite/src/CollectionsInvitations.js index 3dcd2cd58..b486ddbfa 100644 --- a/packages/component-invite/src/CollectionsInvitations.js +++ b/packages/component-invite/src/CollectionsInvitations.js @@ -46,9 +46,11 @@ const CollectionsInvitations = app => { require(`${routePath}/post`)(app.locals.models), ) /** - * @api {get} /api/collections/:collectionId/invitations List collections invitations + * @api {get} /api/collections/:collectionId/invitations/{:invitationId}?role=:role List collections invitations * @apiGroup CollectionsInvitations - * @apiParam {collectionId} id Collection id + * @apiParam {id} collectionId Collection id + * @apiParam {id} [invitationId] Invitation id + * @apiParam {String} role The role to search for: handlingEditor, reviewer, author * @apiSuccessExample {json} Success * HTTP/1.1 200 OK * [{ @@ -56,6 +58,7 @@ const CollectionsInvitations = app => { * "timestamp": "123223121", * "email": "email@example.com", * "status": "pending", + * "invitationId": "1990881" * }] * @apiErrorExample {json} List errors * HTTP/1.1 403 Forbidden diff --git a/packages/component-invite/src/helpers/Invitation.js b/packages/component-invite/src/helpers/Invitation.js index db8de768b..5d6897ebf 100644 --- a/packages/component-invite/src/helpers/Invitation.js +++ b/packages/component-invite/src/helpers/Invitation.js @@ -11,8 +11,8 @@ const getInvitationData = (invitations, userId, role) => { status = 'refused' } - const { timestamp } = matchingInvitation - return { timestamp, status } + const { timestamp, id } = matchingInvitation + return { timestamp, status, id } } const setupInvitation = async (userId, role, collection) => { diff --git a/packages/component-invite/src/routes/collectionsInvitations/get.js b/packages/component-invite/src/routes/collectionsInvitations/get.js index 5650c6ef1..4dd66e7d5 100644 --- a/packages/component-invite/src/routes/collectionsInvitations/get.js +++ b/packages/component-invite/src/routes/collectionsInvitations/get.js @@ -5,10 +5,10 @@ const inviteHelper = require('../../helpers/Invitation') const configRoles = config.get('roles') module.exports = models => async (req, res) => { - const { userId, role } = req.query + const { role } = req.query // TO DO: authsome - if (!helpers.checkForUndefinedParams(userId, role)) { - res.status(400).json({ error: 'User ID and Role are required' }) + if (!helpers.checkForUndefinedParams(role)) { + res.status(400).json({ error: 'Role is required' }) return } @@ -32,11 +32,12 @@ module.exports = models => async (req, res) => { return } + // TO DO: handle case for when the invitationID is provided const membersData = members.map(async member => { const user = await models.User.find(member) - const { timestamp, status } = inviteHelper.getInvitationData( + const { timestamp, status, id } = inviteHelper.getInvitationData( collection.invitations, - userId, + user.id, role, ) return { @@ -44,6 +45,7 @@ module.exports = models => async (req, res) => { timestamp, email: user.email, status, + invitationId: id, } }) -- GitLab