From f61942e5cb672d3e0fd4df6c5ff9b3f15f7cb778 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Tue, 26 Jun 2018 11:55:11 +0200 Subject: models: boards: add PUT members entry point Allows to change the members from the API. --- models/boards.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'models/boards.js') diff --git a/models/boards.js b/models/boards.js index a44de8fa..cae6cf9f 100644 --- a/models/boards.js +++ b/models/boards.js @@ -276,6 +276,10 @@ Boards.helpers({ return Users.find({ _id: { $in: _.pluck(this.members, 'userId') } }); }, + getMember(id) { + return _.findWhere(this.members, { userId: id }); + }, + getLabel(name, color) { return _.findWhere(this.labels, { name, color }); }, @@ -841,6 +845,34 @@ if (Meteor.isServer) { } }); + JsonRoutes.add('PUT', '/api/boards/:boardId/members', function (req, res) { + Authentication.checkUserId(req.userId); + try { + const boardId = req.params.boardId; + const board = Boards.findOne({ _id: boardId }); + const userId = req.body.userId; + const user = Users.findOne({ _id: userId }); + + if (!board.getMember(userId)) { + user.addInvite(boardId); + board.addMember(userId); + JsonRoutes.sendResult(res, { + code: 200, + data: id, + }); + } else { + JsonRoutes.sendResult(res, { + code: 200, + }); + } + } + catch (error) { + JsonRoutes.sendResult(res, { + data: error, + }); + } + }); + JsonRoutes.add('POST', '/api/boards', function (req, res) { try { Authentication.checkUserId(req.userId); -- cgit v1.2.3-1-g7c22