diff options
author | Andrés Manelli <andresmanelli@gmail.com> | 2018-04-15 23:05:47 -0300 |
---|---|---|
committer | Andrés Manelli <andresmanelli@gmail.com> | 2018-04-16 00:18:55 -0300 |
commit | 9eef5112dc1c1c30590d19fbfd2f615714112a3f (patch) | |
tree | d8b4c4c564117a9765400a2fbf428469dffa7569 /models | |
parent | 4861da52a031ca6ee05755df894caef9d062be42 (diff) | |
download | wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.tar.gz wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.tar.bz2 wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.zip |
Add REST API for Checklist Items (Related to #1562)
Diffstat (limited to 'models')
-rw-r--r-- | models/checklistItems.js | 50 | ||||
-rw-r--r-- | models/checklists.js | 1 |
2 files changed, 51 insertions, 0 deletions
diff --git a/models/checklistItems.js b/models/checklistItems.js index 3c01d476..e075eda2 100644 --- a/models/checklistItems.js +++ b/models/checklistItems.js @@ -93,3 +93,53 @@ if (Meteor.isServer) { itemRemover(userId, doc); }); } + +if (Meteor.isServer) { + JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId/items/:itemId', function (req, res) { + Authentication.checkUserId( req.userId); + const paramItemId = req.params.itemId; + const checklistItem = ChecklistItems.findOne({ _id: paramItemId }); + if (checklistItem) { + JsonRoutes.sendResult(res, { + code: 200, + data: checklistItem, + }); + } else { + JsonRoutes.sendResult(res, { + code: 500, + }); + } + }); + + JsonRoutes.add('PUT', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId/items/:itemId', function (req, res) { + Authentication.checkUserId( req.userId); + + const paramItemId = req.params.itemId; + + if (req.body.hasOwnProperty('isFinished')) { + ChecklistItems.direct.update({_id: paramItemId}, {$set: {isFinished: req.body.isFinished}}); + } + if (req.body.hasOwnProperty('title')) { + ChecklistItems.direct.update({_id: paramItemId}, {$set: {title: req.body.title}}); + } + + JsonRoutes.sendResult(res, { + code: 200, + data: { + _id: paramItemId, + }, + }); + }); + + JsonRoutes.add('DELETE', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId/items/:itemId', function (req, res) { + Authentication.checkUserId( req.userId); + const paramItemId = req.params.itemId; + ChecklistItems.direct.remove({ _id: paramItemId }); + JsonRoutes.sendResult(res, { + code: 200, + data: { + _id: paramItemId, + }, + }); + }); +} diff --git a/models/checklists.js b/models/checklists.js index 006eccab..de6c3660 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -136,6 +136,7 @@ if (Meteor.isServer) { return { _id: doc._id, title: doc.title, + isFinished: doc.isFinished, }; }); JsonRoutes.sendResult(res, { |