Initial commit

This commit is contained in:
root
2025-12-21 09:53:16 -05:00
committed by Sebastian Krupinski
commit a7ccac98a2
43 changed files with 6391 additions and 0 deletions
+84
View 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('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('collection.fetch', request);
},
/**
* Create a new collection
*
* @param request - Collection create request
* @returns Promise with created collection
*/
async create(request: CollectionCreateRequest): Promise<CollectionCreateResponse> {
return await transceivePost('collection.create', request);
},
/**
* Modify an existing collection
*
* @param request - Collection modify request
* @returns Promise with modified collection
*/
async modify(request: CollectionModifyRequest): Promise<CollectionModifyResponse> {
return await transceivePost('collection.modify', request);
},
/**
* Delete a collection
*
* @param request - Collection destroy request
* @returns Promise with deletion result
*/
async destroy(request: CollectionDestroyRequest): Promise<CollectionDestroyResponse> {
return await transceivePost('collection.destroy', request);
},
};
export default collectionService;