boldsign
Version:
NodeJS client for boldsign
773 lines (668 loc) • 27.8 kB
text/typescript
/**
* BoldSign API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';
import {
ObjectSerializer, Authentication, VoidAuth, Interceptor,
HttpBasicAuth, HttpBearerAuth, ApiKeyAuth, OAuth, RequestFile,
ContactDetails,ContactsDetails,ContactsList,CreateContactResponse,ErrorResult,
} from '../model';
import {
HttpError,
optionsI,
returnTypeT,
returnTypeI,
generateFormData,
toFormData,
queryParamsSerializer,
USER_AGENT,
} from './';
let defaultBasePath = 'https://api.boldsign.com';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export class ContactsApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = { 'User-Agent': USER_AGENT };
protected _useQuerystring : boolean = true;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'Bearer': new ApiKeyAuth('header', 'Authorization'),
'X-API-KEY': new ApiKeyAuth('header', 'X-API-KEY'),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string) {
if (basePath) {
this.basePath = basePath;
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = { ...defaultHeaders, "User-Agent": USER_AGENT };
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(apikey: string) {
this.authentications["X-API-KEY"].apiKey = apikey;
}
public setAccessToken(accessToken: string) {
this.authentications["Bearer"].apiKey = 'bearer ' + accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
* @summary List Contact document.
* @param page Page index specified in get user contact list request. Default value is 1.
* @param pageSize Page size specified in get user contact list request. Default value is 10.
* @param searchKey Contacts can be listed by the search based on the Name or Email
* @param contactType Contact type whether the contact is My Contacts or All Contacts. Default value is AllContacts.
* @param options
*/
public async contactUserList (page: number, pageSize?: number, searchKey?: string, contactType?: 'MyContacts' | 'AllContacts', options: optionsI = {headers: {}}) : Promise<ContactsList> {
const localVarPath = this.basePath + '/v1/contacts/list';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams['content-type'] = 'application/json';
} else {
localVarHeaderParams['content-type'] = produces.join(',');
}
let localVarFormParams: any = {};
let localVarBodyParams: any = undefined;
// verify required parameter 'page' is not null or undefined
if (page === null || page === undefined) {
throw new Error('Required parameter page was null or undefined when calling contactUserList.');
}
if (pageSize !== undefined) {
localVarQueryParameters['PageSize'] = ObjectSerializer.serialize(pageSize, "number");
}
if (page !== undefined) {
localVarQueryParameters['Page'] = ObjectSerializer.serialize(page, "number");
}
if (searchKey !== undefined) {
localVarQueryParameters['SearchKey'] = ObjectSerializer.serialize(searchKey, "string");
}
if (contactType !== undefined) {
localVarQueryParameters['ContactType'] = ObjectSerializer.serialize(contactType, "'MyContacts' | 'AllContacts'");
}
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let data = {};
if (localVarUseFormData) {
const formData = toFormData(localVarFormParams);
data = formData;
localVarHeaderParams = {
...localVarHeaderParams,
...formData.getHeaders(),
};
}
let localVarRequestOptions: AxiosRequestConfig = {
method: 'GET',
params: localVarQueryParameters,
headers: localVarHeaderParams,
url: localVarPath,
paramsSerializer: this._useQuerystring ? queryParamsSerializer : undefined,
maxContentLength: Infinity,
maxBodyLength: Infinity,
responseType: "json",
};
if (localVarRequestOptions.method !== 'GET') {
localVarRequestOptions.data = data;
}
let authenticationPromise = Promise.resolve();
if (this.authentications["X-API-KEY"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["X-API-KEY"].applyToRequest(localVarRequestOptions));
}
if (this.authentications["Bearer"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["Bearer"].applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
return new Promise<ContactsList>((resolve, reject) => {
axios.request(localVarRequestOptions)
.then((response) => {
handleSuccessfulResponse<ContactsList>(
resolve,
reject,
response,
"ContactsList",
);
}, (error: AxiosError) => {
if (error.response == null) {
reject(error);
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
200,
"ContactsList",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
401,
"ErrorResult",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
400,
"ErrorResult",
)) {
return;
}
reject(error);
});
});
});
}
/**
*
* @summary Create the new Contact.
* @param contactDetails The contact details.
* @param options
*/
public async createContact (contactDetails?: Array<ContactDetails>, options: optionsI = {headers: {}}) : Promise<CreateContactResponse> {
contactDetails = deserializeIfNeeded(contactDetails, "Array<ContactDetails>");
const localVarPath = this.basePath + '/v1/contacts/create';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams['content-type'] = 'application/json';
} else {
localVarHeaderParams['content-type'] = produces.join(',');
}
let localVarFormParams: any = {};
let localVarBodyParams: any = undefined;
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
const result = generateFormData(contactDetails, Array<ContactDetails>);
localVarUseFormData = result.localVarUseFormData;
let data = {};
if (localVarUseFormData) {
const formData = toFormData(result.data);
data = formData;
localVarHeaderParams = {
...localVarHeaderParams,
...formData.getHeaders(),
};
} else {
data = ObjectSerializer.serialize(
contactDetails,
"Array<ContactDetails>"
);
}
let localVarRequestOptions: AxiosRequestConfig = {
method: 'POST',
params: localVarQueryParameters,
headers: localVarHeaderParams,
url: localVarPath,
paramsSerializer: this._useQuerystring ? queryParamsSerializer : undefined,
maxContentLength: Infinity,
maxBodyLength: Infinity,
responseType: "json",
};
if (localVarRequestOptions.method !== 'GET') {
localVarRequestOptions.data = data;
}
let authenticationPromise = Promise.resolve();
if (this.authentications["X-API-KEY"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["X-API-KEY"].applyToRequest(localVarRequestOptions));
}
if (this.authentications["Bearer"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["Bearer"].applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
return new Promise<CreateContactResponse>((resolve, reject) => {
axios.request(localVarRequestOptions)
.then((response) => {
handleSuccessfulResponse<CreateContactResponse>(
resolve,
reject,
response,
"CreateContactResponse",
);
}, (error: AxiosError) => {
if (error.response == null) {
reject(error);
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
201,
"CreateContactResponse",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
401,
"ErrorResult",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
400,
"ErrorResult",
)) {
return;
}
reject(error);
});
});
});
}
/**
*
* @summary Deletes a contact.
* @param id The contact id.
* @param options
*/
public async deleteContacts (id: string, options: optionsI = {headers: {}}) : Promise<returnTypeI> {
const localVarPath = this.basePath + '/v1/contacts/delete';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams['content-type'] = 'application/json';
} else {
localVarHeaderParams['content-type'] = produces.join(',');
}
let localVarFormParams: any = {};
let localVarBodyParams: any = undefined;
// verify required parameter 'id' is not null or undefined
if (id === null || id === undefined) {
throw new Error('Required parameter id was null or undefined when calling deleteContacts.');
}
if (id !== undefined) {
localVarQueryParameters['id'] = ObjectSerializer.serialize(id, "string");
}
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let data = {};
if (localVarUseFormData) {
const formData = toFormData(localVarFormParams);
data = formData;
localVarHeaderParams = {
...localVarHeaderParams,
...formData.getHeaders(),
};
}
let localVarRequestOptions: AxiosRequestConfig = {
method: 'DELETE',
params: localVarQueryParameters,
headers: localVarHeaderParams,
url: localVarPath,
paramsSerializer: this._useQuerystring ? queryParamsSerializer : undefined,
maxContentLength: Infinity,
maxBodyLength: Infinity,
responseType: "json",
};
if (localVarRequestOptions.method !== 'GET') {
localVarRequestOptions.data = data;
}
let authenticationPromise = Promise.resolve();
if (this.authentications["X-API-KEY"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["X-API-KEY"].applyToRequest(localVarRequestOptions));
}
if (this.authentications["Bearer"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["Bearer"].applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
return new Promise<returnTypeI>((resolve, reject) => {
axios.request(localVarRequestOptions)
.then((response) => {
handleSuccessfulResponse(
resolve,
reject,
response,
);
}, (error: AxiosError) => {
if (error.response == null) {
reject(error);
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
401,
"ErrorResult",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
403,
"ErrorResult",
)) {
return;
}
reject(error);
});
});
});
}
/**
*
* @summary Get summary of the contact.
* @param id Contact Id.
* @param options
*/
public async getContact (id: string, options: optionsI = {headers: {}}) : Promise<ContactsDetails> {
const localVarPath = this.basePath + '/v1/contacts/get';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams['content-type'] = 'application/json';
} else {
localVarHeaderParams['content-type'] = produces.join(',');
}
let localVarFormParams: any = {};
let localVarBodyParams: any = undefined;
// verify required parameter 'id' is not null or undefined
if (id === null || id === undefined) {
throw new Error('Required parameter id was null or undefined when calling getContact.');
}
if (id !== undefined) {
localVarQueryParameters['id'] = ObjectSerializer.serialize(id, "string");
}
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let data = {};
if (localVarUseFormData) {
const formData = toFormData(localVarFormParams);
data = formData;
localVarHeaderParams = {
...localVarHeaderParams,
...formData.getHeaders(),
};
}
let localVarRequestOptions: AxiosRequestConfig = {
method: 'GET',
params: localVarQueryParameters,
headers: localVarHeaderParams,
url: localVarPath,
paramsSerializer: this._useQuerystring ? queryParamsSerializer : undefined,
maxContentLength: Infinity,
maxBodyLength: Infinity,
responseType: "json",
};
if (localVarRequestOptions.method !== 'GET') {
localVarRequestOptions.data = data;
}
let authenticationPromise = Promise.resolve();
if (this.authentications["X-API-KEY"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["X-API-KEY"].applyToRequest(localVarRequestOptions));
}
if (this.authentications["Bearer"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["Bearer"].applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
return new Promise<ContactsDetails>((resolve, reject) => {
axios.request(localVarRequestOptions)
.then((response) => {
handleSuccessfulResponse<ContactsDetails>(
resolve,
reject,
response,
"ContactsDetails",
);
}, (error: AxiosError) => {
if (error.response == null) {
reject(error);
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
200,
"ContactsDetails",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
401,
"ErrorResult",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
403,
"ErrorResult",
)) {
return;
}
reject(error);
});
});
});
}
/**
*
* @summary Update the contact.
* @param id The contactId.
* @param contactDetails The contact details.
* @param options
*/
public async updateContact (id?: string, contactDetails?: ContactDetails, options: optionsI = {headers: {}}) : Promise<returnTypeI> {
contactDetails = deserializeIfNeeded(contactDetails, "ContactDetails");
const localVarPath = this.basePath + '/v1/contacts/update';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams['content-type'] = 'application/json';
} else {
localVarHeaderParams['content-type'] = produces.join(',');
}
let localVarFormParams: any = {};
let localVarBodyParams: any = undefined;
if (id !== undefined) {
localVarQueryParameters['id'] = ObjectSerializer.serialize(id, "string");
}
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
const result = generateFormData(contactDetails, ContactDetails);
localVarUseFormData = result.localVarUseFormData;
let data = {};
if (localVarUseFormData) {
const formData = toFormData(result.data);
data = formData;
localVarHeaderParams = {
...localVarHeaderParams,
...formData.getHeaders(),
};
} else {
data = ObjectSerializer.serialize(
contactDetails,
"ContactDetails"
);
}
let localVarRequestOptions: AxiosRequestConfig = {
method: 'PUT',
params: localVarQueryParameters,
headers: localVarHeaderParams,
url: localVarPath,
paramsSerializer: this._useQuerystring ? queryParamsSerializer : undefined,
maxContentLength: Infinity,
maxBodyLength: Infinity,
responseType: "json",
};
if (localVarRequestOptions.method !== 'GET') {
localVarRequestOptions.data = data;
}
let authenticationPromise = Promise.resolve();
if (this.authentications["X-API-KEY"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["X-API-KEY"].applyToRequest(localVarRequestOptions));
}
if (this.authentications["Bearer"].apiKey) {
authenticationPromise = authenticationPromise.then(() => this.authentications["Bearer"].applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
return new Promise<returnTypeI>((resolve, reject) => {
axios.request(localVarRequestOptions)
.then((response) => {
handleSuccessfulResponse(
resolve,
reject,
response,
);
}, (error: AxiosError) => {
if (error.response == null) {
reject(error);
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
401,
"ErrorResult",
)) {
return;
}
if (handleErrorCodeResponse(
reject,
error.response,
400,
"ErrorResult",
)) {
return;
}
reject(error);
});
});
});
}
}
function deserializeIfNeeded<T> (obj: T, classname: string): T {
if (obj !== null && obj !== undefined && obj.constructor.name !== classname) {
return ObjectSerializer.deserialize(obj, classname);
}
return obj;
}
type AxiosResolve<T> = (
value: (T | PromiseLike<T>),
) => void
type AxiosReject = (reason?: any) => void;
function handleSuccessfulResponse<T>(
resolve: AxiosResolve<T>,
reject: AxiosReject,
response: AxiosResponse,
returnType?: string,
) {
let body = response.data;
if (
response.status &&
response.status >= 200 &&
response.status <= 299
) {
if (returnType) {
body = ObjectSerializer.deserialize(body, returnType);
}
resolve(body);
} else {
reject(new HttpError(response, body, response.status));
}
}
function handleErrorCodeResponse(
reject: AxiosReject,
response: AxiosResponse,
code: number,
returnType: string
): boolean {
if (response.status !== code) {
return false;
}
let body = response.data;
if(code === 401) {
body = "Unauthorized request (401): Invalid authentication.";
}
reject(new HttpError(response, body, response.status));
return true;
}
function handleErrorRangeResponse(
reject: AxiosReject,
response: AxiosResponse,
code: string,
returnType: string
): boolean {
let rangeCodeLeft = Number(code[0] + "00");
let rangeCodeRight = Number(code[0] + "99");
if (response.status >= rangeCodeLeft && response.status <= rangeCodeRight) {
const body = ObjectSerializer.deserialize(
response.data,
returnType,
);
reject(new HttpError(response, body, response.status));
return true;
}
return false;
}