vulcain-corejs
Version:
Vulcain micro-service framework
57 lines (56 loc) • 1.66 kB
TypeScript
import { CommonRequestData, CommonActionMetadata, ServiceHandlerMetadata, CommonRequestResponse, IManager } from './common';
import { IContainer } from '../di/resolvers';
import { Domain } from '../schemas/schema';
import { RequestContext } from '../servers/requestContext';
import { HttpResponse } from './response';
export interface QueryData extends CommonRequestData {
maxByPage?: number;
page?: number;
}
export interface QueryResponse<T> extends CommonRequestResponse<T> {
maxByPage?: number;
page?: number;
totalPages?: number;
total?: number;
}
/**
*
*
* @export
* @interface QueryMetadata
* @extends {ServiceHandlerMetadata}
*/
export interface QueryMetadata extends ServiceHandlerMetadata {
}
/**
*
*
* @export
* @interface QueryActionMetadata
* @extends {CommonActionMetadata}
*/
export interface QueryActionMetadata extends CommonActionMetadata {
outputSchema?: string | Function;
outputType?: "one" | "many";
}
export declare class QueryManager implements IManager {
container: IContainer;
private _domain;
private _serviceDescriptors;
/**
* Get the current domain model
* @returns {Domain}
*/
readonly domain: Domain;
constructor(container: IContainer);
private createResponse(ctx, query, error?);
getInfoHandler(command: CommonRequestData, container?: IContainer): {
handler: any;
metadata: QueryActionMetadata;
method: string;
verb: string;
kind: "query" | "action" | "event";
};
private validateRequestData(ctx, info, query);
runAsync(query: QueryData, ctx: RequestContext): Promise<HttpResponse>;
}