Initial commit

This commit is contained in:
root
2025-12-21 09:55:58 -05:00
committed by Sebastian Krupinski
commit 169b7b4c91
57 changed files with 10105 additions and 0 deletions

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<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;