Initial commit
This commit is contained in:
120
src/services/entityService.ts
Normal file
120
src/services/entityService.ts
Normal file
@@ -0,0 +1,120 @@
|
||||
/**
|
||||
* Message/Entity management service
|
||||
*/
|
||||
|
||||
import { transceivePost } from './transceive';
|
||||
import type {
|
||||
MessageListRequest,
|
||||
MessageListResponse,
|
||||
MessageDeltaRequest,
|
||||
MessageDeltaResponse,
|
||||
MessageExtantRequest,
|
||||
MessageExtantResponse,
|
||||
MessageFetchRequest,
|
||||
MessageFetchResponse,
|
||||
MessageSearchRequest,
|
||||
MessageSearchResponse,
|
||||
MessageSendRequest,
|
||||
MessageSendResponse,
|
||||
MessageCreateRequest,
|
||||
MessageCreateResponse,
|
||||
MessageUpdateRequest,
|
||||
MessageUpdateResponse,
|
||||
MessageDestroyRequest,
|
||||
MessageDestroyResponse,
|
||||
} from '../types/entity';
|
||||
|
||||
export const entityService = {
|
||||
|
||||
/**
|
||||
* List all available messages
|
||||
*
|
||||
* @param request - Message list request parameters
|
||||
* @returns Promise with message list grouped by provider, service, and collection
|
||||
*/
|
||||
async list(request: MessageListRequest = {}): Promise<MessageListResponse> {
|
||||
return await transceivePost<MessageListRequest, MessageListResponse>('entity.list', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Get delta changes for messages
|
||||
*
|
||||
* @param request - Message delta request with source selector
|
||||
* @returns Promise with delta changes (created, modified, deleted)
|
||||
*/
|
||||
async delta(request: MessageDeltaRequest): Promise<MessageDeltaResponse> {
|
||||
return await transceivePost('entity.delta', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Check which messages exist/are available
|
||||
*
|
||||
* @param request - Message extant request with source selector
|
||||
* @returns Promise with message availability status
|
||||
*/
|
||||
async extant(request: MessageExtantRequest): Promise<MessageExtantResponse> {
|
||||
return await transceivePost('entity.extant', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Fetch specific messages
|
||||
*
|
||||
* @param request - Message fetch request
|
||||
* @returns Promise with message details
|
||||
*/
|
||||
async fetch(request: MessageFetchRequest): Promise<MessageFetchResponse> {
|
||||
return await transceivePost('entity.fetch', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Search messages
|
||||
*
|
||||
* @param request - Message search request
|
||||
* @returns Promise with search results
|
||||
*/
|
||||
async search(request: MessageSearchRequest): Promise<MessageSearchResponse> {
|
||||
return await transceivePost('entity.search', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Send a message
|
||||
*
|
||||
* @param request - Message send request
|
||||
* @returns Promise with send result
|
||||
*/
|
||||
async send(request: MessageSendRequest): Promise<MessageSendResponse> {
|
||||
return await transceivePost('entity.send', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create a new message (draft)
|
||||
*
|
||||
* @param request - Message create request
|
||||
* @returns Promise with created message details
|
||||
*/
|
||||
async create(request: MessageCreateRequest): Promise<MessageCreateResponse> {
|
||||
return await transceivePost('entity.create', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Update an existing message (flags, labels, etc.)
|
||||
*
|
||||
* @param request - Message update request
|
||||
* @returns Promise with update result
|
||||
*/
|
||||
async update(request: MessageUpdateRequest): Promise<MessageUpdateResponse> {
|
||||
return await transceivePost('entity.update', request);
|
||||
},
|
||||
|
||||
/**
|
||||
* Delete/destroy a message
|
||||
*
|
||||
* @param request - Message destroy request
|
||||
* @returns Promise with destroy result
|
||||
*/
|
||||
async destroy(request: MessageDestroyRequest): Promise<MessageDestroyResponse> {
|
||||
return await transceivePost('entity.destroy', request);
|
||||
},
|
||||
};
|
||||
|
||||
export default entityService;
|
||||
Reference in New Issue
Block a user