@itwin/imodels-client-management
Version:
iModels API client wrapper for applications that manage iModels.
61 lines • 2.74 kB
TypeScript
import { AuthorizationParam, BinaryContentType, ContentType, HeaderFactories, HeadersParam, HttpResponse, IModelsOriginalError, PreferReturn, RestClient, SupportedGetResponseTypes } from "../types";
import { CollectionResponse } from "./ApiResponseInterfaces";
import { ResponseInfo } from "./IModelsErrorParser";
import { EntityCollectionPage } from "./UtilityTypes";
type CommonRequestParams = AuthorizationParam & HeadersParam;
/**
* Function that is called if the HTTP request fails and which returns an error that will be thrown by one of the
* methods in {@link RestClient}.
*/
export type ParseErrorFunc = (response: ResponseInfo, originalError: IModelsOriginalError) => Error;
export type SendGetRequestParams = CommonRequestParams & {
url: string;
preferReturn?: PreferReturn;
responseType?: SupportedGetResponseTypes;
};
export type SendPostRequestParams = CommonRequestParams & {
url: string;
body: object | undefined;
};
export type SendPutRequestParams = CommonRequestParams & {
url: string;
contentType?: BinaryContentType;
body: Uint8Array;
};
export type SendPatchRequestParams = SendPostRequestParams;
export type SendDeleteRequestParams = CommonRequestParams & {
url: string;
};
export interface OperationsBaseOptions {
restClient: RestClient;
api: {
version: string;
};
headers: HeaderFactories;
parseErrorFunc: ParseErrorFunc;
}
export declare class OperationsBase<TOptions extends OperationsBaseOptions> {
protected _options: TOptions;
constructor(_options: TOptions);
protected sendGetRequest<TBody>(params: SendGetRequestParams & {
responseType?: ContentType.Json;
}): Promise<HttpResponse<TBody>>;
protected sendGetRequest(params: SendGetRequestParams & {
responseType: ContentType.Png;
}): Promise<HttpResponse<Uint8Array>>;
protected sendPostRequest<TBody>(params: SendPostRequestParams): Promise<HttpResponse<TBody>>;
protected sendPutRequest<TBody>(params: SendPutRequestParams): Promise<HttpResponse<TBody>>;
protected sendPatchRequest<TBody>(params: SendPatchRequestParams): Promise<HttpResponse<TBody>>;
protected sendDeleteRequest<TBody>(params: SendDeleteRequestParams): Promise<HttpResponse<TBody>>;
protected getEntityCollectionPage<TEntity, TResponse extends CollectionResponse>(params: CommonRequestParams & {
url: string;
preferReturn?: PreferReturn;
entityCollectionAccessor: (response: HttpResponse<TResponse>) => TEntity[];
}): Promise<EntityCollectionPage<TEntity>>;
private executeRequest;
private resolveHeaderValue;
private addOrUpdateHeaders;
private formHeaders;
}
export {};
//# sourceMappingURL=OperationsBase.d.ts.map