diff --git a/packages/component-invite/src/CollectionsInvitations.js b/packages/component-invite/src/CollectionsInvitations.js index 3dcd2cd585db246d444a949bae33c0c55dc793f1..b486ddbfa6e1a555e267e8837bd5f73f729a8efb 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 db8de768bac2b351219962139928d406c2e1e870..5d6897ebf372f6ce8fa44cc97508b5bed3d4327d 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 5650c6ef10817d2c74d30cff316396383478c2bd..4dd66e7d5eaa6afb9225e4f0abb346d34f47ab5f 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, } })