UNPKG

kea-react

Version:

Componentes comunes de react

43 lines (42 loc) 1.66 kB
import { UrlParameters } from "./url"; export declare type HttpVerb = "GET" | "POST" | "PUT" | "DELETE"; export interface RpcMethod { <TParams extends UrlParameters<keyof TParams>>(params: TParams, body?: any): Promise<any>; } export interface RpcController { (method: string, verb?: HttpVerb): RpcMethod; } export interface RpcBase { (controller: string): RpcController; } export interface RpcService { (baseUrl: string): RpcBase; } /**Crea un objecto para consumir un servicio RPC, en donde las peticiones se realizan en la forma: * base/controller/method?params=... */ export declare const rpcService: RpcService; export interface CrudService<T> { /**Obtiene una entidad */ get(id: number): Promise<T>; /**Obtiene todas las entidades */ query(): Promise<T[]>; /**Agrega una entidad. Devuelve el ID de la entidad */ add(entity: T): Promise<number>; /**Actualiza una entidad. Devuelve el ID de la entidad */ update(entity: T): Promise<number>; /**Borra una entidad */ delete(id: number): Promise<void>; } /** * Devuelve un crud service para un servicio RPC-POST con la siguiente firma: * Get(id : number) => T; * Query() => T[]; * Add(entity: T) => number; * Update(entity: T) => number; * Delete(id: number) => void; * * Si su servicio no conforma con esta forma es mejor usar directamente los metodos rpcService. * Si el resultado del Update del controllador no devuelve un numero se devuelve el valor de la propiedad IdRegistro del parametro de la función */ export declare function rpcCrudService<T>(controller: RpcController): CrudService<T>;