Browse Source

Add REST API for Checklist Items (Related to #1562)

Andrés Manelli 7 years ago
parent
commit
9eef5112dc
2 changed files with 51 additions and 0 deletions
  1. 50 0
      models/checklistItems.js
  2. 1 0
      models/checklists.js

+ 50 - 0
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,
+      },
+    });
+  });
+}

+ 1 - 0
models/checklists.js

@@ -136,6 +136,7 @@ if (Meteor.isServer) {
         return {
           _id: doc._id,
           title: doc.title,
+          isFinished: doc.isFinished,
         };
       });
       JsonRoutes.sendResult(res, {