From 4861da52a031ca6ee05755df894caef9d062be42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Manelli?= Date: Sun, 15 Apr 2018 21:34:15 -0300 Subject: Fix checklists REST API (#1562) --- models/checklists.js | 112 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 58 deletions(-) (limited to 'models') diff --git a/models/checklists.js b/models/checklists.js index 9946f98e..006eccab 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -106,94 +106,90 @@ if (Meteor.isServer) { if (Meteor.isServer) { JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/checklists', function (req, res) { - try { - Authentication.checkUserId( req.userId); - const paramCardId = req.params.cardId; + Authentication.checkUserId( req.userId); + const paramCardId = req.params.cardId; + const checklists = Checklists.find({ cardId: paramCardId }).map(function (doc) { + return { + _id: doc._id, + title: doc.title, + }; + }); + if (checklists) { JsonRoutes.sendResult(res, { code: 200, - data: Checklists.find({ cardId: paramCardId }).map(function (doc) { - return { - _id: doc._id, - title: doc.title, - }; - }), + data: checklists, }); - } - catch (error) { + } else { JsonRoutes.sendResult(res, { - code: 200, - data: error, + code: 500, }); } }); JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId', function (req, res) { - try { - Authentication.checkUserId( req.userId); - const paramChecklistId = req.params.checklistId; - const paramCardId = req.params.cardId; + Authentication.checkUserId( req.userId); + const paramChecklistId = req.params.checklistId; + const paramCardId = req.params.cardId; + const checklist = Checklists.findOne({ _id: paramChecklistId, cardId: paramCardId }); + if (checklist) { + checklist.items = ChecklistItems.find({checklistId: checklist._id}).map(function (doc) { + return { + _id: doc._id, + title: doc.title, + }; + }); JsonRoutes.sendResult(res, { code: 200, - data: Checklists.findOne({ _id: paramChecklistId, cardId: paramCardId }), + data: checklist, }); - } - catch (error) { + } else { JsonRoutes.sendResult(res, { - code: 200, - data: error, + code: 500, }); } - }); +}); JsonRoutes.add('POST', '/api/boards/:boardId/cards/:cardId/checklists', function (req, res) { - try { - Authentication.checkUserId( req.userId); - const paramCardId = req.params.cardId; + Authentication.checkUserId( req.userId); - const checklistToSend = {}; - checklistToSend.cardId = paramCardId; - checklistToSend.title = req.body.title; - checklistToSend.items = []; - const id = Checklists.insert(checklistToSend); + const paramCardId = req.params.cardId; + const id = Checklists.insert({ + title: req.body.title, + cardId: paramCardId, + sort: 0, + }); + if (id) { const checklist = Checklists.findOne({_id: id}); - req.body.items.forEach(function (item) { - checklist.addItem(item); - }, this); - - + req.body.items.forEach(function (item, idx) { + ChecklistItems.insert({ + cardId: paramCardId, + checklistId: id, + title: item.title, + sort: idx, + }); + }); JsonRoutes.sendResult(res, { code: 200, data: { _id: id, }, }); - } - catch (error) { + } else { JsonRoutes.sendResult(res, { - code: 200, - data: error, + code: 400, }); } }); JsonRoutes.add('DELETE', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId', function (req, res) { - try { - Authentication.checkUserId( req.userId); - const paramCommentId = req.params.commentId; - const paramCardId = req.params.cardId; - Checklists.remove({ _id: paramCommentId, cardId: paramCardId }); - JsonRoutes.sendResult(res, { - code: 200, - data: { - _id: paramCardId, - }, - }); - } - catch (error) { - JsonRoutes.sendResult(res, { - code: 200, - data: error, - }); - } + Authentication.checkUserId( req.userId); + const paramChecklistId = req.params.checklistId; + Checklists.remove({ _id: paramChecklistId }); + JsonRoutes.sendResult(res, { + code: 200, + data: { + _id: paramChecklistId, + }, + }); }); } -- cgit v1.2.3-1-g7c22