summaryrefslogtreecommitdiffstats
path: root/models/checklistItems.js
diff options
context:
space:
mode:
authorAndrés Manelli <andresmanelli@gmail.com>2018-04-15 23:05:47 -0300
committerAndrés Manelli <andresmanelli@gmail.com>2018-04-16 00:18:55 -0300
commit9eef5112dc1c1c30590d19fbfd2f615714112a3f (patch)
treed8b4c4c564117a9765400a2fbf428469dffa7569 /models/checklistItems.js
parent4861da52a031ca6ee05755df894caef9d062be42 (diff)
downloadwekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.tar.gz
wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.tar.bz2
wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.zip
Add REST API for Checklist Items (Related to #1562)
Diffstat (limited to 'models/checklistItems.js')
-rw-r--r--models/checklistItems.js50
1 files changed, 50 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,
+ },
+ });
+ });
+}