This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

refactor: update remove card from collection endpoint to use query parameters

Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat>

+16 -7
+14 -3
src/modules/cards/infrastructure/http/controllers/RemoveCardFromCollectionController.ts
··· 13 13 async executeImpl(req: AuthenticatedRequest, res: Response): Promise<any> { 14 14 try { 15 15 const { cardId } = req.params; 16 - const { collectionIds } = req.body; 16 + const { collectionIds: collectionIdsParam } = req.query; 17 17 const curatorId = req.did; 18 18 19 19 if (!curatorId) { ··· 24 24 return this.badRequest(res, 'Card ID is required'); 25 25 } 26 26 27 - if (!collectionIds || !Array.isArray(collectionIds)) { 28 - return this.badRequest(res, 'Collection IDs array is required'); 27 + if (!collectionIdsParam || typeof collectionIdsParam !== 'string') { 28 + return this.badRequest( 29 + res, 30 + 'Collection IDs query parameter is required', 31 + ); 32 + } 33 + 34 + const collectionIds = collectionIdsParam 35 + .split(',') 36 + .filter((id) => id.trim() !== ''); 37 + 38 + if (collectionIds.length === 0) { 39 + return this.badRequest(res, 'At least one collection ID is required'); 29 40 } 30 41 31 42 const result = await this.removeCardFromCollectionUseCase.execute({
+2 -4
src/webapp/api-client/clients/CardClient.ts
··· 69 69 async removeCardFromCollection( 70 70 request: RemoveCardFromCollectionRequest, 71 71 ): Promise<RemoveCardFromCollectionResponse> { 72 + const collectionIdsParam = request.collectionIds.join(','); 72 73 return this.request<RemoveCardFromCollectionResponse>( 73 74 'DELETE', 74 - `/api/cards/${request.cardId}/collections`, 75 - { 76 - collectionIds: request.collectionIds, 77 - }, 75 + `/api/cards/${request.cardId}/collections?collectionIds=${encodeURIComponent(collectionIdsParam)}`, 78 76 ); 79 77 } 80 78 }