summaryrefslogtreecommitdiffstats
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
parent4861da52a031ca6ee05755df894caef9d062be42 (diff)
downloadwekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.tar.gz
wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.tar.bz2
wekan-9eef5112dc1c1c30590d19fbfd2f615714112a3f.zip
Add REST API for Checklist Items (Related to #1562)
-rw-r--r--models/checklistItems.js50
-rw-r--r--models/checklists.js1
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, {