Initial commit
This commit is contained in:
84
src/services/collectionService.ts
Normal file
84
src/services/collectionService.ts
Normal file
@@ -0,0 +1,84 @@
|
||||
/**
|
||||
* Collection management service
|
||||
*/
|
||||
|
||||
import { transceivePost } from './transceive';
|
||||
import type {
|
||||
CollectionListRequest,
|
||||
CollectionListResponse,
|
||||
CollectionExtantRequest,
|
||||
CollectionExtantResponse,
|
||||
CollectionFetchRequest,
|
||||
CollectionFetchResponse,
|
||||
CollectionCreateRequest,
|
||||
CollectionCreateResponse,
|
||||
CollectionModifyRequest,
|
||||
CollectionModifyResponse,
|
||||
CollectionDestroyRequest,
|
||||
CollectionDestroyResponse
|
||||
} from '../types/collection';
|
||||
|
||||
export const collectionService = {
|
||||
|
||||
/**
|
||||
* List all available collections
|
||||
*
|
||||
* @param request - Collection list request parameters
|
||||
* @returns Promise with collection list grouped by provider and service
|
||||
*/
|
||||
async list(request: CollectionListRequest = {}): Promise<CollectionListResponse> {
|
||||
return await transceivePost<CollectionListRequest, CollectionListResponse>('collection.list', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Check which collections exist/are available
|
||||
*
|
||||
* @param request - Collection extant request with source selector
|
||||
* @returns Promise with collection availability status
|
||||
*/
|
||||
async extant(request: CollectionExtantRequest): Promise<CollectionExtantResponse> {
|
||||
return await transceivePost<CollectionExtantRequest, CollectionExtantResponse>('collection.extant', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Fetch a specific collection
|
||||
*
|
||||
* @param request - Collection fetch request
|
||||
* @returns Promise with collection details
|
||||
*/
|
||||
async fetch(request: CollectionFetchRequest): Promise<CollectionFetchResponse> {
|
||||
return await transceivePost<CollectionFetchRequest, CollectionFetchResponse>('collection.fetch', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create a new collection/folder
|
||||
*
|
||||
* @param request - Collection creation parameters
|
||||
* @returns Promise with created collection details
|
||||
*/
|
||||
async create(request: CollectionCreateRequest): Promise<CollectionCreateResponse> {
|
||||
return await transceivePost<CollectionCreateRequest, CollectionCreateResponse>('collection.create', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Modify an existing collection/folder
|
||||
*
|
||||
* @param request - Collection modification parameters
|
||||
* @returns Promise with modified collection details
|
||||
*/
|
||||
async modify(request: CollectionModifyRequest): Promise<CollectionModifyResponse> {
|
||||
return await transceivePost<CollectionModifyRequest, CollectionModifyResponse>('collection.modify', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Destroy/delete a collection/folder
|
||||
*
|
||||
* @param request - Collection destroy parameters
|
||||
* @returns Promise with destroy operation result
|
||||
*/
|
||||
async destroy(request: CollectionDestroyRequest): Promise<CollectionDestroyResponse> {
|
||||
return await transceivePost<CollectionDestroyRequest, CollectionDestroyResponse>('collection.destroy', request);
|
||||
},
|
||||
};
|
||||
|
||||
export default collectionService;
|
||||
Reference in New Issue
Block a user