models: boards: add PUT members entry point

Allows to change the members from the API.
This commit is contained in:
Benjamin Tissoires 2018-06-26 11:55:11 +02:00
parent 33d4ad76ca
commit f61942e5cb

View file

@ -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);