@etsoo/appscript
Version:
Applications shared TypeScript framework
111 lines (110 loc) • 3.78 kB
TypeScript
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>;
}