UNPKG

@etsoo/appscript

Version:

Applications shared TypeScript framework

111 lines (110 loc) 3.78 kB
import { IApi, IApiPayload } from "@etsoo/restclient"; import { IActionResult, IdType } from "@etsoo/shared"; import { IApp } from "../app/IApp"; import { BaseApi } from "./BaseApi"; import { ResultPayload } from "./dto/ResultPayload"; import { MergeRQ } from "./rq/MergeRQ"; import { QueryRQ } from "./rq/QueryRQ"; import { UpdateStatusRQ } from "./rq/UpdateStatusRQ"; /** * Entity API * Follow com.etsoo.CoreFramework.Services.EntityServiceBase */ export declare class EntityApi<T extends IApp = IApp> extends BaseApi<T> { protected flag: string; /** * Constructor * @param flag Identity flag, like 'Product' for product APIs * @param app Application */ constructor(flag: string, app: T, api?: IApi); /** * Create * @param data Modal data * @param payload Payload * @returns Result */ protected createBase<R extends IActionResult>(data: object, payload?: IApiPayload<R>): Promise<R | undefined>; /** * Delete * @param id Id or ids * @param payload Payload */ protected deleteBase<R extends IActionResult>(id: IdType, payload?: IApiPayload<R>): Promise<R | undefined>; protected deleteBase<R extends IActionResult>(ids: IdType[], payload?: IApiPayload<R>): Promise<R | undefined>; /** * List * @param rq Request data * @param payload Payload * @returns Result */ protected listBase<T extends IdType, RQ extends QueryRQ<T>, R extends object>(rq: RQ, payload?: IApiPayload<R[]>): Promise<R[] | undefined>; /** * Merge * @param rq Request data * @param payload Payload * @returns Result */ protected mergeBase<T extends IdType = number>(rq: MergeRQ<T>, payload?: ResultPayload): Promise<IActionResult<{}> | undefined>; /** * Query * @param rq Request data * @param payload Payload * @param queryKey Additional query key * @returns Result */ protected queryBase<T extends IdType, RQ extends QueryRQ<T>, R extends object>(rq: RQ, payload?: IApiPayload<R[]>, queryKey?: string): Promise<R[] | undefined>; /** * Query favored country ids * @returns Result */ protected queryFavoredCountryIdsBase(api?: string): Promise<string[]>; /** * Read * @param id Id * @param payload Payload * @returns Result */ protected readBase<R extends object>(id: IdType, payload?: IApiPayload<R>): Promise<R | undefined>; /** * Sort * @param items Items to sort * @param payload Payload * @returns Result */ protected sortBase<RQ extends { id: IdType; }>(items: RQ[], payload?: IApiPayload<number>): Promise<number | undefined>; /** * Sort with category * @param category Category for grouping * @param items Items to sort * @param method Sort method * @param payload Payload * @returns Result */ protected sortWith<RQ extends { id: IdType; }>(category: number, items: RQ[], method?: string, payload?: IApiPayload<number>): Promise<number | undefined>; /** * Update * @param data Modal data * @param payload Payload * @returns Result */ protected updateBase<R extends IActionResult>(data: object, payload?: IApiPayload<R>): Promise<R | undefined>; /** * Read for update * @param id Id * @param payload Payload * @returns Result */ protected updateReadBase<R extends object>(id: IdType, payload?: IApiPayload<R>): Promise<R | undefined>; /** * Update status * @param rq Request data * @param payload Payload * @returns Result */ protected updateStatusBase(rq: UpdateStatusRQ, payload?: ResultPayload): Promise<IActionResult<{}> | undefined>; }