UNPKG

@calf/abra

Version:

Abra module of Calf framework.

90 lines (89 loc) 2.59 kB
import { Response } from "node-fetch"; import { Observable, Subject } from "rxjs"; import { IAbraQuery, IAbraQueryParam } from "../interfaces/query.interface"; import { AbraModule } from "../enums/module.enum"; /** * Api service * @description Abra API service */ export declare class ApiService { protected readonly resultSource: Subject<any>; protected readonly result$: Observable<any>; protected readonly exceptionSource: Subject<Error>; protected readonly exception$: Observable<Error>; /** * Observe results */ results(): Observable<any>; /** * Observe exception */ exceptions(): Observable<Error>; /** * Get list * @param module * @param query * @returns */ getList<TResult>(module: AbraModule, query: IAbraQuery): Promise<TResult[]>; /** * Get * @description Get object detail * @param module * @param id * @returns */ get<TResult>(module: AbraModule, id: string): Promise<TResult>; /** * Request * @description Make request to given endpoint without processing * the result * @param method * @param module * @param segments * @param payload * @param fields */ execute<TPayload>(method: "post" | "get" | "put" | "delete", module: AbraModule, rawResponse: boolean | undefined, segments: string[], fields?: string[], queryParams?: IAbraQueryParam[], payload?: TPayload): Promise<Response>; /** * Update * @description Update existing object * @param module * @param id * @param payload * @param fields * @returns */ update<TPayload, TResult>(module: AbraModule, id: string, payload: TPayload, fields?: string[]): Promise<TResult>; /** * Create * @description Create new object * @param module * @param payload * @param fields */ create<TPayload, TResult>(module: AbraModule, payload: TPayload, fields?: string[]): Promise<TResult>; /** * Delete * @description Delete object * @param module * @param id */ delete(module: AbraModule, id: string): Promise<void>; /** * Parse response * @param response * @returns */ private parseResponse; /** * Get request target * @description Get target for request */ private getRequestTarget; /** * Get request headers * @description Get headers for request */ private getRequestHeaders; }