diff options
Diffstat (limited to 'models/boards.js')
-rw-r--r-- | models/boards.js | 32 |
1 files changed, 32 insertions, 0 deletions
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); |