|
@@ -60,131 +60,187 @@ Integrations.allow({
|
|
|
if (Meteor.isServer) {
|
|
|
// Get all integrations in board
|
|
|
JsonRoutes.add('GET', '/api/boards/:boardId/integrations', function(req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
|
|
|
- const data = Integrations.find({ boardId: paramBoardId }, { fields: { token: 0 } }).map(function(doc) {
|
|
|
- return doc;
|
|
|
- });
|
|
|
+ const data = Integrations.find({ boardId: paramBoardId }, { fields: { token: 0 } }).map(function(doc) {
|
|
|
+ return doc;
|
|
|
+ });
|
|
|
|
|
|
- JsonRoutes.sendResult(res, {code: 200, data});
|
|
|
+ JsonRoutes.sendResult(res, {code: 200, data});
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
// Get a single integration in board
|
|
|
JsonRoutes.add('GET', '/api/boards/:boardId/integrations/:intId', function(req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- const paramIntId = req.params.intId;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
-
|
|
|
- JsonRoutes.sendResult(res, {
|
|
|
- code: 200,
|
|
|
- data: Integrations.findOne({ _id: paramIntId, boardId: paramBoardId }, { fields: { token: 0 } }),
|
|
|
- });
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ const paramIntId = req.params.intId;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: Integrations.findOne({ _id: paramIntId, boardId: paramBoardId }, { fields: { token: 0 } }),
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
// Create a new integration
|
|
|
JsonRoutes.add('POST', '/api/boards/:boardId/integrations', function(req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
-
|
|
|
- const id = Integrations.insert({
|
|
|
- userId: req.userId,
|
|
|
- boardId: paramBoardId,
|
|
|
- url: req.body.url,
|
|
|
- });
|
|
|
-
|
|
|
- JsonRoutes.sendResult(res, {
|
|
|
- code: 200,
|
|
|
- data: {
|
|
|
- _id: id,
|
|
|
- },
|
|
|
- });
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+
|
|
|
+ const id = Integrations.insert({
|
|
|
+ userId: req.userId,
|
|
|
+ boardId: paramBoardId,
|
|
|
+ url: req.body.url,
|
|
|
+ });
|
|
|
+
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: {
|
|
|
+ _id: id,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
// Edit integration data
|
|
|
JsonRoutes.add('PUT', '/api/boards/:boardId/integrations/:intId', function (req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- const paramIntId = req.params.intId;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ const paramIntId = req.params.intId;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+
|
|
|
+ if (req.body.hasOwnProperty('enabled')) {
|
|
|
+ const newEnabled = req.body.enabled;
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$set: {enabled: newEnabled}});
|
|
|
+ }
|
|
|
+ if (req.body.hasOwnProperty('title')) {
|
|
|
+ const newTitle = req.body.title;
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$set: {title: newTitle}});
|
|
|
+ }
|
|
|
+ if (req.body.hasOwnProperty('url')) {
|
|
|
+ const newUrl = req.body.url;
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$set: {url: newUrl}});
|
|
|
+ }
|
|
|
+ if (req.body.hasOwnProperty('token')) {
|
|
|
+ const newToken = req.body.token;
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$set: {token: newToken}});
|
|
|
+ }
|
|
|
+ if (req.body.hasOwnProperty('activities')) {
|
|
|
+ const newActivities = req.body.activities;
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$set: {activities: newActivities}});
|
|
|
+ }
|
|
|
|
|
|
- if (req.body.hasOwnProperty('enabled')) {
|
|
|
- const newEnabled = req.body.enabled;
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$set: {enabled: newEnabled}});
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: {
|
|
|
+ _id: paramIntId,
|
|
|
+ },
|
|
|
+ });
|
|
|
}
|
|
|
- if (req.body.hasOwnProperty('title')) {
|
|
|
- const newTitle = req.body.title;
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$set: {title: newTitle}});
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
}
|
|
|
- if (req.body.hasOwnProperty('url')) {
|
|
|
- const newUrl = req.body.url;
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$set: {url: newUrl}});
|
|
|
- }
|
|
|
- if (req.body.hasOwnProperty('token')) {
|
|
|
- const newToken = req.body.token;
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$set: {token: newToken}});
|
|
|
- }
|
|
|
- if (req.body.hasOwnProperty('activities')) {
|
|
|
- const newActivities = req.body.activities;
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$set: {activities: newActivities}});
|
|
|
- }
|
|
|
-
|
|
|
- JsonRoutes.sendResult(res, {
|
|
|
- code: 200,
|
|
|
- data: {
|
|
|
- _id: paramIntId,
|
|
|
- },
|
|
|
- });
|
|
|
});
|
|
|
|
|
|
// Delete subscribed activities
|
|
|
JsonRoutes.add('DELETE', '/api/boards/:boardId/integrations/:intId/activities', function (req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- const paramIntId = req.params.intId;
|
|
|
- const newActivities = req.body.activities;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
-
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$pullAll: {activities: newActivities}});
|
|
|
-
|
|
|
- JsonRoutes.sendResult(res, {
|
|
|
- code: 200,
|
|
|
- data: Integrations.findOne({_id: paramIntId, boardId: paramBoardId}, { fields: {_id: 1, activities: 1}}),
|
|
|
- });
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ const paramIntId = req.params.intId;
|
|
|
+ const newActivities = req.body.activities;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$pullAll: {activities: newActivities}});
|
|
|
+
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: Integrations.findOne({_id: paramIntId, boardId: paramBoardId}, { fields: {_id: 1, activities: 1}}),
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
// Add subscribed activities
|
|
|
JsonRoutes.add('POST', '/api/boards/:boardId/integrations/:intId/activities', function (req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- const paramIntId = req.params.intId;
|
|
|
- const newActivities = req.body.activities;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
-
|
|
|
- Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
- {$addToSet: {activities: { $each: newActivities}}});
|
|
|
-
|
|
|
- JsonRoutes.sendResult(res, {
|
|
|
- code: 200,
|
|
|
- data: Integrations.findOne({_id: paramIntId, boardId: paramBoardId}, { fields: {_id: 1, activities: 1}}),
|
|
|
- });
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ const paramIntId = req.params.intId;
|
|
|
+ const newActivities = req.body.activities;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+
|
|
|
+ Integrations.direct.update({_id: paramIntId, boardId: paramBoardId},
|
|
|
+ {$addToSet: {activities: { $each: newActivities}}});
|
|
|
+
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: Integrations.findOne({_id: paramIntId, boardId: paramBoardId}, { fields: {_id: 1, activities: 1}}),
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
// Delete integration
|
|
|
JsonRoutes.add('DELETE', '/api/boards/:boardId/integrations/:intId', function (req, res, next) {
|
|
|
- const paramBoardId = req.params.boardId;
|
|
|
- const paramIntId = req.params.intId;
|
|
|
- Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
-
|
|
|
- Integrations.direct.remove({_id: paramIntId, boardId: paramBoardId});
|
|
|
- JsonRoutes.sendResult(res, {
|
|
|
- code: 200,
|
|
|
- data: {
|
|
|
- _id: paramIntId,
|
|
|
- },
|
|
|
- });
|
|
|
+ try {
|
|
|
+ const paramBoardId = req.params.boardId;
|
|
|
+ const paramIntId = req.params.intId;
|
|
|
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
|
|
|
+
|
|
|
+ Integrations.direct.remove({_id: paramIntId, boardId: paramBoardId});
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: {
|
|
|
+ _id: paramIntId,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ JsonRoutes.sendResult(res, {
|
|
|
+ code: 200,
|
|
|
+ data: error,
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
}
|