vulcain-corejs
Version:
Vulcain micro-service framework
40 lines (39 loc) • 1.61 kB
TypeScript
import * as types from './types';
import { IContainer } from './../../di/resolvers';
import { IMetrics } from '../../metrics/metrics';
import { RequestContext } from '../../servers/requestContext';
export declare abstract class AbstractHttpCommand {
protected customTags: string;
protected metrics: IMetrics;
requestContext: RequestContext;
private static METRICS_NAME;
readonly container: IContainer;
constructor(container: IContainer);
protected initializeMetricsInfo(): void;
/**
* Set metric tags for this command
*
* @protected
* @param {any} tags
*
* @memberOf AbstractHttpCommand
*/
protected setMetricsTags(uri: string): void;
onCommandCompleted(duration: number, success: boolean): void;
runAsync(...args: any[]): Promise<any>;
protected execAsync(verb: string, url: string, data?: any): Promise<any>;
protected postAsync(url: string, data: any): Promise<types.IHttpResponse>;
protected getAsync(url: string): Promise<types.IHttpResponse>;
protected deleteAsync(url: string): Promise<types.IHttpResponse>;
protected putAsync(url: string, data: any): Promise<types.IHttpResponse>;
/**
* Send a http request
*
* @protected
* @param {string} http verb to use
* @param {string} url
* @param {(req:types.IHttpRequest) => void} [prepareRequest] Callback to configure request before sending
* @returns request response
*/
protected sendRequestAsync(verb: string, url: string, prepareRequest?: (req: types.IHttpRequest) => void): Promise<types.IHttpResponse>;
}