diff --git a/models/cards.js b/models/cards.js index f2fc6571d..bde3905fc 100644 --- a/models/cards.js +++ b/models/cards.js @@ -3301,6 +3301,27 @@ if (Meteor.isServer) { }); }); + /** + * @operation get_card_by_id + * @summary Get a Card by Card ID + * + * @param {string} cardId the card ID + * @return_type Cards + */ + JsonRoutes.add( + 'GET', + '/api/cards/:cardId', + function(req, res) { + const paramCardId = req.params.cardId; + card = ReactiveCache.getCard(paramCardId) + Authentication.checkBoardAccess(req.userId, card.boardId); + JsonRoutes.sendResult(res, { + code: 200, + data: ReactiveCache.getCard(paramCardId), + }); + }, + ); + /** * @operation get_card * @summary Get a Card diff --git a/public/api/wekan.yml b/public/api/wekan.yml index ccc1f317f..8279a1a7f 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -2612,6 +2612,29 @@ paths: type: integer public: type: integer + /api/cards/{card}: + get: + operationId: get_card_by_id + summary: Get a Card by Card ID + tags: + - Cards + parameters: + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Cards" /api/users/{user}/boards: get: operationId: get_boards_from_user