diff options
Diffstat (limited to 'models/integrations.js')
-rw-r--r-- | models/integrations.js | 250 |
1 files changed, 153 insertions, 97 deletions
diff --git a/models/integrations.js b/models/integrations.js index 826873ce..1be6af17 100644 --- a/models/integrations.js +++ b/models/integrations.js @@ -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, + }); + } }); } |