add archive card to api

This commit is contained in:
Mial Lewis 2025-11-26 23:57:49 +00:00
parent 3d70de94c6
commit e30ce78053

View file

@ -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