Kaynağa Gözat

add archive card to api

Mial Lewis 4 hafta önce
ebeveyn
işleme
e30ce78053
1 değiştirilmiş dosya ile 38 ekleme ve 0 silme
  1. 38 0
      models/cards.js

+ 38 - 0
models/cards.js

@@ -4440,6 +4440,44 @@ JsonRoutes.add('GET', '/api/boards/:boardId/cards_count', function(
       });
       });
     },
     },
   );
   );
+
+  /**
+  * @operation archive_card
+  * @summary Archive a card
+  *
+  * @description Archive a card
+  * @param {string} boardId the board ID of the card
+  * @param {string} listId the list ID of the card
+  * @param {string} cardId the ID of the card
+  * @return_type {_id: string, archived: bool, archivedAt: Date}
+  */
+  JsonRoutes.add(
+    'POST',
+    '/api/boards/:boardId/lists/:listId/cards/:cardId/archive',
+    function(req, res) {
+      const paramBoardId = req.params.boardId;
+      const paramCardId = req.params.cardId;
+      const paramListId = req.params.listId;
+      Authentication.checkBoardAccess(req.userId, paramBoardId);
+      const card = ReactiveCache.getCard({
+        _id: paramCardId,
+        listId: paramListId,
+        boardId: paramBoardId,
+        archived: false,
+      });
+      if (!card) {
+        throw new Meteor.Error(404, 'Card not found');
+      }
+      const archive_res = card.archive();
+      JsonRoutes.sendResult(res, {
+        code: 200,
+        data: {
+          _id: paramCardId,
+          ...archive_res.$set,
+        },
+      });
+    },
+  );
 }
 }
 
 
 // Position history tracking methods
 // Position history tracking methods