diff --git a/models/cards.js b/models/cards.js index d43bac9b3..a125a6e79 100644 --- a/models/cards.js +++ b/models/cards.js @@ -3272,6 +3272,72 @@ if (Meteor.isServer) { } }); +/** + * @operation get_board_cards_count + * @summary Get a cards count to a board + * + * @param {string} boardId the board ID + * @return_type {board_cards_count: integer} + */ +JsonRoutes.add('GET', '/api/boards/:boardId/cards_count', function( + req, + res, +) { + try { + const paramBoardId = req.params.boardId; + Authentication.checkBoardAccess(req.userId, paramBoardId); + JsonRoutes.sendResult(res, { + code: 200, + data: { + board_cards_count: Cards.find({ + boardId: paramBoardId, + archived: false, + }).count(), + } + }); + } catch (error) { + JsonRoutes.sendResult(res, { + code: 200, + data: error, + }); + } +}); + +/** + * @operation get_list_cards_count + * @summary Get a cards count to a list + * + * @param {string} boardId the board ID + * @param {string} listId the List ID + * @return_type {list_cards_count: integer} + */ + JsonRoutes.add('GET', '/api/boards/:boardId/lists/:listId/cards_count', function( + req, + res, + ) { + try { + const paramBoardId = req.params.boardId; + const paramListId = req.params.listId; + Authentication.checkBoardAccess(req.userId, paramBoardId); + JsonRoutes.sendResult(res, { + code: 200, + data: { + list_cards_count: Cards.find({ + boardId: paramBoardId, + listId: paramListId, + archived: false, + }).count(), + } + }); + } catch (error) { + JsonRoutes.sendResult(res, { + code: 200, + data: error, + }); + } + }); + + /* * Note for the JSDoc: * 'list' will be interpreted as the path parameter