A social knowledge tool for researchers built on ATProto
1import { BaseClient } from './BaseClient';
2import {
3 CreateCollectionRequest,
4 CreateCollectionResponse,
5 UpdateCollectionRequest,
6 UpdateCollectionResponse,
7 DeleteCollectionRequest,
8 DeleteCollectionResponse,
9} from '../types';
10
11export class CollectionClient extends BaseClient {
12 async createCollection(
13 request: CreateCollectionRequest,
14 ): Promise<CreateCollectionResponse> {
15 return this.request<CreateCollectionResponse>(
16 'POST',
17 '/api/collections',
18 request,
19 );
20 }
21
22 async updateCollection(
23 request: UpdateCollectionRequest,
24 ): Promise<UpdateCollectionResponse> {
25 const { collectionId, ...updateData } = request;
26 return this.request<UpdateCollectionResponse>(
27 'PUT',
28 `/api/collections/${collectionId}`,
29 updateData,
30 );
31 }
32
33 async deleteCollection(
34 request: DeleteCollectionRequest,
35 ): Promise<DeleteCollectionResponse> {
36 return this.request<DeleteCollectionResponse>(
37 'DELETE',
38 `/api/collections/${request.collectionId}`,
39 );
40 }
41}