@calf/abra
Version:
Abra module of Calf framework.
90 lines (89 loc) • 2.59 kB
TypeScript
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;
}