import { BaseClient } from './BaseClient'; import { AddUrlToLibraryRequest, AddUrlToLibraryResponse, AddCardToLibraryRequest, AddCardToLibraryResponse, AddCardToCollectionRequest, AddCardToCollectionResponse, UpdateNoteCardRequest, UpdateNoteCardResponse, RemoveCardFromLibraryRequest, RemoveCardFromLibraryResponse, RemoveCardFromCollectionRequest, RemoveCardFromCollectionResponse, } from '../types'; export class CardClient extends BaseClient { async addUrlToLibrary( request: AddUrlToLibraryRequest, ): Promise { return this.request( 'POST', '/api/cards/library/urls', request, ); } async addCardToLibrary( request: AddCardToLibraryRequest, ): Promise { return this.request( 'POST', '/api/cards/library', request, ); } async addCardToCollection( request: AddCardToCollectionRequest, ): Promise { return this.request( 'POST', '/api/cards/collections', request, ); } async updateNoteCard( request: UpdateNoteCardRequest, ): Promise { return this.request( 'PUT', `/api/cards/${request.cardId}/note`, { note: request.note, }, ); } async removeCardFromLibrary( request: RemoveCardFromLibraryRequest, ): Promise { return this.request( 'DELETE', `/api/cards/${request.cardId}/library`, ); } async removeCardFromCollection( request: RemoveCardFromCollectionRequest, ): Promise { const collectionIdsParam = request.collectionIds.join(','); return this.request( 'DELETE', `/api/cards/${request.cardId}/collections?collectionIds=${encodeURIComponent(collectionIdsParam)}`, ); } }