summaryrefslogtreecommitdiffstats
path: root/models/boards.js
diff options
context:
space:
mode:
Diffstat (limited to 'models/boards.js')
-rw-r--r--models/boards.js44
1 files changed, 38 insertions, 6 deletions
diff --git a/models/boards.js b/models/boards.js
index 52d0ca87..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 });
},
@@ -823,9 +827,9 @@ if (Meteor.isServer) {
}
});
- JsonRoutes.add('GET', '/api/boards/:id', function (req, res) {
+ JsonRoutes.add('GET', '/api/boards/:boardId', function (req, res) {
try {
- const id = req.params.id;
+ const id = req.params.boardId;
Authentication.checkBoardAccess(req.userId, id);
JsonRoutes.sendResult(res, {
@@ -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);
@@ -878,10 +910,10 @@ if (Meteor.isServer) {
}
});
- JsonRoutes.add('DELETE', '/api/boards/:id', function (req, res) {
+ JsonRoutes.add('DELETE', '/api/boards/:boardId', function (req, res) {
try {
Authentication.checkUserId(req.userId);
- const id = req.params.id;
+ const id = req.params.boardId;
Boards.remove({ _id: id });
JsonRoutes.sendResult(res, {
code: 200,
@@ -898,9 +930,9 @@ if (Meteor.isServer) {
}
});
- JsonRoutes.add('PUT', '/api/boards/:id/labels', function (req, res) {
+ JsonRoutes.add('PUT', '/api/boards/:boardId/labels', function (req, res) {
Authentication.checkUserId(req.userId);
- const id = req.params.id;
+ const id = req.params.boardId;
try {
if (req.body.hasOwnProperty('label')) {
const board = Boards.findOne({ _id: id });