261 lines
		
	
	
	
		
			8.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			261 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}} |