260 lines
8.1 KiB
Text
260 lines
8.1 KiB
Text
{{>licenseInfo}}
|
|
|
|
{{#jqueryAlreadyImported}}
|
|
declare var $ : any;
|
|
{{/jqueryAlreadyImported}}
|
|
{{^jqueryAlreadyImported}}
|
|
import * as $ from 'jquery';
|
|
{{/jqueryAlreadyImported}}
|
|
import * as models from '../model/models';
|
|
import { COLLECTION_FORMATS } from '../variables';
|
|
import { Configuration } from '../configuration';
|
|
|
|
/* tslint:disable:no-unused-variable member-ordering */
|
|
|
|
{{#operations}}
|
|
|
|
|
|
|
|
{{#description}}
|
|
/**
|
|
* {{&description}}
|
|
*/
|
|
{{/description}}
|
|
export class {{classname}} {
|
|
protected basePath = '{{{basePath}}}';
|
|
public defaultHeaders: Array<string> = [];
|
|
public defaultExtraJQueryAjaxSettings?: JQueryAjaxSettings = null;
|
|
public configuration: Configuration = new Configuration();
|
|
|
|
constructor(basePath?: string, configuration?: Configuration, defaultExtraJQueryAjaxSettings?: JQueryAjaxSettings) {
|
|
if (basePath) {
|
|
this.basePath = basePath;
|
|
}
|
|
if (configuration) {
|
|
this.configuration = configuration;
|
|
}
|
|
if (defaultExtraJQueryAjaxSettings) {
|
|
this.defaultExtraJQueryAjaxSettings = defaultExtraJQueryAjaxSettings;
|
|
}
|
|
}
|
|
|
|
private extendObj<T1, T2 extends T1>(objA: T2, objB: T2): T1|T2 {
|
|
for (let key in objB) {
|
|
if (objB.hasOwnProperty(key)) {
|
|
objA[key] = objB[key];
|
|
}
|
|
}
|
|
return objA;
|
|
}
|
|
|
|
{{#operation}}
|
|
|
|
/**
|
|
* {{¬es}}
|
|
{{#summary}}
|
|
* @summary {{&summary}}
|
|
{{/summary}}
|
|
{{#allParams}}
|
|
* @param {{paramName}} {{description}}
|
|
{{/allParams}}
|
|
*/
|
|
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}extraJQueryAjaxSettings?: JQueryAjaxSettings): JQueryPromise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}} > {
|
|
let localVarPath = this.basePath + '{{{path}}}'{{#pathParams}}.replace('{' + '{{baseName}}' + '}', encodeURIComponent(String({{paramName}}))){{/pathParams}};
|
|
|
|
let queryParameters: any = {};
|
|
let headerParams: any = {};
|
|
{{#hasFormParams}}
|
|
let formParams = new FormData();
|
|
let reqHasFile = false;
|
|
|
|
{{/hasFormParams}}
|
|
{{#allParams}}
|
|
{{#required}}
|
|
// verify required parameter '{{paramName}}' is not null or undefined
|
|
if ({{paramName}} === null || {{paramName}} === undefined) {
|
|
throw new Error('Required parameter {{paramName}} was null or undefined when calling {{nickname}}.');
|
|
}
|
|
|
|
{{/required}}
|
|
{{/allParams}}
|
|
{{#queryParams}}
|
|
{{#isListContainer}}
|
|
if ({{paramName}}) {
|
|
{{#isCollectionFormatMulti}}
|
|
{{paramName}}.forEach((element: any) => {
|
|
queryParameters['{{baseName}}'].push(element);
|
|
});
|
|
{{/isCollectionFormatMulti}}
|
|
{{^isCollectionFormatMulti}}
|
|
queryParameters['{{baseName}}'] = {{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']);
|
|
{{/isCollectionFormatMulti}}
|
|
}
|
|
{{/isListContainer}}
|
|
{{^isListContainer}}
|
|
if ({{paramName}} !== null && {{paramName}} !== undefined) {
|
|
{{#isDateTime}}
|
|
queryParameters['{{baseName}}'] = {{paramName}}.toISOString();
|
|
{{/isDateTime}}
|
|
{{^isDateTime}}
|
|
{{#isDate}}
|
|
queryParameters['{{baseName}}'] = {{paramName}}.toISOString();
|
|
{{/isDate}}
|
|
{{^isDate}}
|
|
queryParameters['{{baseName}}'] = <string><any>{{paramName}};
|
|
{{/isDate}}
|
|
{{/isDateTime}}
|
|
}
|
|
{{/isListContainer}}
|
|
{{/queryParams}}
|
|
|
|
localVarPath = localVarPath + "?" + $.param(queryParameters);
|
|
{{#formParams}}
|
|
{{#isFile}}
|
|
reqHasFile = true;
|
|
formParams.append("{{baseName}}", {{paramName}});
|
|
{{/isFile}}
|
|
{{^isFile}}
|
|
{{#isListContainer}}
|
|
if ({{paramName}}) {
|
|
{{#isCollectionFormatMulti}}
|
|
{{paramName}}.forEach((element: any) => {
|
|
formParams.append('{{baseName}}', element);
|
|
});
|
|
{{/isCollectionFormatMulti}}
|
|
{{^isCollectionFormatMulti}}
|
|
formParams.append('{{baseName}}', {{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']));
|
|
{{/isCollectionFormatMulti}}
|
|
}
|
|
{{/isListContainer}}
|
|
{{^isListContainer}}
|
|
if ({{paramName}} !== null && {{paramName}} !== undefined) {
|
|
formParams.append('{{baseName}}', <any>{{paramName}});
|
|
}
|
|
{{/isListContainer}}
|
|
{{/isFile}}
|
|
{{/formParams}}
|
|
{{#headerParams}}
|
|
{{#isListContainer}}
|
|
if ({{paramName}}) {
|
|
headerParams['{{baseName}}'] = {{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']);
|
|
}
|
|
{{/isListContainer}}
|
|
{{^isListContainer}}
|
|
headerParams['{{baseName}}'] = String({{paramName}});
|
|
{{/isListContainer}}
|
|
|
|
{{/headerParams}}
|
|
// to determine the Content-Type header
|
|
let consumes: string[] = [
|
|
{{#consumes}}
|
|
'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}
|
|
{{/consumes}}
|
|
];
|
|
|
|
// to determine the Accept header
|
|
let produces: string[] = [
|
|
{{#produces}}
|
|
'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}
|
|
{{/produces}}
|
|
];
|
|
|
|
{{#authMethods}}
|
|
// authentication ({{name}}) required
|
|
{{#isApiKey}}
|
|
{{#isKeyInHeader}}
|
|
if (this.configuration.apiKey) {
|
|
headerParams['{{keyParamName}}'] = this.configuration.apiKey;
|
|
}
|
|
|
|
{{/isKeyInHeader}}
|
|
{{#isKeyInQuery}}
|
|
if (this.configuration.apiKey) {
|
|
queryParameters.set('{{keyParamName}}', this.configuration.apiKey);
|
|
}
|
|
|
|
{{/isKeyInQuery}}
|
|
{{/isApiKey}}
|
|
{{#isBasic}}
|
|
// http basic authentication required
|
|
if (this.configuration.username || this.configuration.password) {
|
|
headerParams['Authorization'] = 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password);
|
|
}
|
|
|
|
{{/isBasic}}
|
|
{{#isOAuth}}
|
|
// oauth required
|
|
if (this.configuration.accessToken) {
|
|
let accessToken = typeof this.configuration.accessToken === 'function'
|
|
? this.configuration.accessToken()
|
|
: this.configuration.accessToken;
|
|
headerParams['Authorization'] = 'Bearer ' + accessToken;
|
|
}
|
|
|
|
{{/isOAuth}}
|
|
{{/authMethods}}
|
|
{{#hasFormParams}}
|
|
if (!reqHasFile) {
|
|
headerParams['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
}
|
|
|
|
{{/hasFormParams}}
|
|
|
|
{{#bodyParam}}
|
|
headerParams['Content-Type'] = 'application/json';
|
|
|
|
{{/bodyParam}}
|
|
let requestOptions: JQueryAjaxSettings = {
|
|
url: localVarPath,
|
|
type: '{{httpMethod}}',
|
|
headers: headerParams,
|
|
processData: false
|
|
};
|
|
|
|
{{#bodyParam}}
|
|
requestOptions.data = JSON.stringify({{paramName}});
|
|
{{/bodyParam}}
|
|
if (headerParams['Content-Type']) {
|
|
requestOptions.contentType = headerParams['Content-Type'];
|
|
}
|
|
{{#hasFormParams}}
|
|
requestOptions.data = formParams;
|
|
if (reqHasFile) {
|
|
requestOptions.contentType = false;
|
|
}
|
|
{{/hasFormParams}}
|
|
|
|
if (extraJQueryAjaxSettings) {
|
|
requestOptions = (<any>Object).assign(requestOptions, extraJQueryAjaxSettings);
|
|
}
|
|
|
|
if (this.defaultExtraJQueryAjaxSettings) {
|
|
requestOptions = (<any>Object).assign(requestOptions, this.defaultExtraJQueryAjaxSettings);
|
|
}
|
|
|
|
let dfd = $.Deferred();
|
|
$.ajax(requestOptions).then(
|
|
(data: {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}, textStatus: string, jqXHR: JQueryXHR) =>
|
|
dfd.resolve(jqXHR, data),
|
|
(xhr: JQueryXHR, textStatus: string, errorThrown: string) => {
|
|
if(false){}
|
|
{{#responses}}
|
|
else if (xhr.status == {{{code}}} && {{{code}}} >= 400)
|
|
{
|
|
dfd.reject(new {{dataType}}Exception(<{{dataType}}>xhr.responseJSON))
|
|
}
|
|
|
|
{{/responses}}
|
|
else
|
|
{
|
|
|
|
dfd.reject(errorThrown)
|
|
}
|
|
}
|
|
);
|
|
return dfd.promise();
|
|
}
|
|
|
|
{{/operation}}
|
|
}
|
|
{{/operations}}
|