github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/typescript-fetch/apis.mustache (about) 1 /* tslint:disable */ 2 /* eslint-disable */ 3 {{>licenseInfo}} 4 5 import * as runtime from '../runtime'; 6 {{#imports.0}} 7 import { 8 {{#imports}} 9 {{className}}, 10 {{className}}FromJSON, 11 {{className}}ToJSON, 12 {{/imports}} 13 } from '../models'; 14 {{/imports.0}} 15 16 {{#operations}} 17 {{#operation}} 18 {{#allParams.0}} 19 export interface {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request { 20 {{#allParams}} 21 {{paramName}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{#isNullable}} | null{{/isNullable}}{{/isEnum}}; 22 {{/allParams}} 23 } 24 25 {{/allParams.0}} 26 {{/operation}} 27 {{/operations}} 28 {{#withInterfaces}} 29 {{#operations}} 30 /** 31 * {{classname}} - interface 32 * {{#lambda.indented_1}}{{{unescapedDescription}}}{{/lambda.indented_1}} 33 * @export 34 * @interface {{classname}}Interface 35 */ 36 export interface {{classname}}Interface { 37 {{#operation}} 38 /** 39 * {{¬es}} 40 {{#summary}} 41 * @summary {{&summary}} 42 {{/summary}} 43 {{#allParams}} 44 * @param {{=<% %>=}}{<%&dataType%>}<%={{ }}=%> {{^required}}[{{/required}}{{paramName}}{{^required}}]{{/required}} {{description}} 45 {{/allParams}} 46 * @param {*} [options] Override http request option. 47 * @throws {RequiredError} 48 * @memberof {{classname}}Interface 49 */ 50 {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<runtime.ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}>>; 51 52 /** 53 {{#notes}} 54 * {{¬es}} 55 {{/notes}} 56 {{#summary}} 57 * {{&summary}} 58 {{/summary}} 59 */ 60 {{^useSingleRequestParameter}} 61 {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{#isNullable}} | null{{/isNullable}}{{/isEnum}}{{^-last}}, {{/-last}}{{/allParams}}): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}>; 62 {{/useSingleRequestParameter}} 63 {{#useSingleRequestParameter}} 64 {{nickname}}({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}>; 65 {{/useSingleRequestParameter}} 66 67 {{/operation}} 68 } 69 70 {{/operations}} 71 {{/withInterfaces}} 72 {{#operations}} 73 /** 74 * {{#lambda.indented_star_1}}{{{unescapedDescription}}}{{/lambda.indented_star_1}} 75 */ 76 {{#withInterfaces}} 77 export class {{classname}} extends runtime.BaseAPI implements {{classname}}Interface { 78 {{/withInterfaces}} 79 {{^withInterfaces}} 80 export class {{classname}} extends runtime.BaseAPI { 81 {{/withInterfaces}} 82 83 {{#operation}} 84 /** 85 {{#notes}} 86 * {{¬es}} 87 {{/notes}} 88 {{#summary}} 89 * {{&summary}} 90 {{/summary}} 91 */ 92 async {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<runtime.ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}>> { 93 {{#allParams}} 94 {{#required}} 95 if (requestParameters.{{paramName}} === null || requestParameters.{{paramName}} === undefined) { 96 throw new runtime.RequiredError('{{paramName}}','Required parameter requestParameters.{{paramName}} was null or undefined when calling {{nickname}}.'); 97 } 98 99 {{/required}} 100 {{/allParams}} 101 const queryParameters: any = {}; 102 103 {{#queryParams}} 104 {{#isArray}} 105 if (requestParameters.{{paramName}}) { 106 {{#isCollectionFormatMulti}} 107 queryParameters['{{baseName}}'] = requestParameters.{{paramName}}; 108 {{/isCollectionFormatMulti}} 109 {{^isCollectionFormatMulti}} 110 queryParameters['{{baseName}}'] = requestParameters.{{paramName}}.join(runtime.COLLECTION_FORMATS["{{collectionFormat}}"]); 111 {{/isCollectionFormatMulti}} 112 } 113 114 {{/isArray}} 115 {{^isArray}} 116 if (requestParameters.{{paramName}} !== undefined) { 117 {{#isDateTime}} 118 queryParameters['{{baseName}}'] = (requestParameters.{{paramName}} as any).toISOString(); 119 {{/isDateTime}} 120 {{^isDateTime}} 121 {{#isDate}} 122 queryParameters['{{baseName}}'] = (requestParameters.{{paramName}} as any).toISOString().substr(0,10); 123 {{/isDate}} 124 {{^isDate}} 125 queryParameters['{{baseName}}'] = requestParameters.{{paramName}}; 126 {{/isDate}} 127 {{/isDateTime}} 128 } 129 130 {{/isArray}} 131 {{/queryParams}} 132 const headerParameters: runtime.HTTPHeaders = {}; 133 134 {{#bodyParam}} 135 {{^consumes}} 136 headerParameters['Content-Type'] = 'application/json'; 137 138 {{/consumes}} 139 {{#consumes.0}} 140 headerParameters['Content-Type'] = '{{{mediaType}}}'; 141 142 {{/consumes.0}} 143 {{/bodyParam}} 144 {{#headerParams}} 145 {{#isArray}} 146 if (requestParameters.{{paramName}}) { 147 headerParameters['{{baseName}}'] = requestParameters.{{paramName}}.join(runtime.COLLECTION_FORMATS["{{collectionFormat}}"]); 148 } 149 150 {{/isArray}} 151 {{^isArray}} 152 if (requestParameters.{{paramName}} !== undefined && requestParameters.{{paramName}} !== null) { 153 headerParameters['{{baseName}}'] = String(requestParameters.{{paramName}}); 154 } 155 156 {{/isArray}} 157 {{/headerParams}} 158 {{#authMethods}} 159 {{#isBasic}} 160 {{#isBasicBasic}} 161 if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { 162 headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); 163 } 164 {{/isBasicBasic}} 165 {{#isBasicBearer}} 166 if (this.configuration && this.configuration.accessToken) { 167 const token = this.configuration.accessToken; 168 const tokenString = typeof token === 'function' ? token("{{name}}", [{{#scopes}}"{{{scope}}}"{{^-last}}, {{/-last}}{{/scopes}}]) : token; 169 170 if (tokenString) { 171 headerParameters["Authorization"] = `Bearer ${tokenString}`; 172 } 173 } 174 {{/isBasicBearer}} 175 {{/isBasic}} 176 {{#isApiKey}} 177 {{#isKeyInHeader}} 178 if (this.configuration && this.configuration.apiKey) { 179 headerParameters["{{keyParamName}}"] = this.configuration.apiKey("{{keyParamName}}"); // {{name}} authentication 180 } 181 182 {{/isKeyInHeader}} 183 {{#isKeyInQuery}} 184 if (this.configuration && this.configuration.apiKey) { 185 queryParameters["{{keyParamName}}"] = this.configuration.apiKey("{{keyParamName}}"); // {{name}} authentication 186 } 187 188 {{/isKeyInQuery}} 189 {{/isApiKey}} 190 {{#isOAuth}} 191 if (this.configuration && this.configuration.accessToken) { 192 // oauth required 193 if (typeof this.configuration.accessToken === 'function') { 194 headerParameters["Authorization"] = this.configuration.accessToken("{{name}}", [{{#scopes}}"{{{scope}}}"{{^-last}}, {{/-last}}{{/scopes}}]); 195 } else { 196 headerParameters["Authorization"] = this.configuration.accessToken; 197 } 198 } 199 200 {{/isOAuth}} 201 {{/authMethods}} 202 {{#hasFormParams}} 203 const consumes: runtime.Consume[] = [ 204 {{#consumes}} 205 { contentType: '{{{mediaType}}}' }, 206 {{/consumes}} 207 ]; 208 // @ts-ignore: canConsumeForm may be unused 209 const canConsumeForm = runtime.canConsumeForm(consumes); 210 211 let formParams: { append(param: string, value: any): any }; 212 let useForm = false; 213 {{#formParams}} 214 {{#isFile}} 215 // use FormData to transmit files using content-type "multipart/form-data" 216 useForm = canConsumeForm; 217 {{/isFile}} 218 {{/formParams}} 219 if (useForm) { 220 formParams = new FormData(); 221 } else { 222 formParams = new URLSearchParams(); 223 } 224 225 {{#formParams}} 226 {{#isArray}} 227 if (requestParameters.{{paramName}}) { 228 {{#isCollectionFormatMulti}} 229 requestParameters.{{paramName}}.forEach((element) => { 230 formParams.append('{{baseName}}', element as any); 231 }) 232 {{/isCollectionFormatMulti}} 233 {{^isCollectionFormatMulti}} 234 formParams.append('{{baseName}}', requestParameters.{{paramName}}.join(runtime.COLLECTION_FORMATS["{{collectionFormat}}"])); 235 {{/isCollectionFormatMulti}} 236 } 237 238 {{/isArray}} 239 {{^isArray}} 240 if (requestParameters.{{paramName}} !== undefined) { 241 {{#isFreeFormObject}} 242 this.flattenDeepParams({ 243 {{baseName}}: requestParameters.{{paramName}} 244 }).forEach(([name, value]) => { 245 formParams.append(name, value as any); 246 }); 247 {{/isFreeFormObject}} 248 {{^isFreeFormObject}} 249 formParams.append('{{baseName}}', requestParameters.{{paramName}} as any); 250 {{/isFreeFormObject}} 251 } 252 253 {{/isArray}} 254 {{/formParams}} 255 {{/hasFormParams}} 256 const response = await this.request({ 257 path: `{{{path}}}`{{#pathParams}}.replace(`{${"{{baseName}}"}}`, encodeURIComponent(String(requestParameters.{{paramName}}))){{/pathParams}}, 258 method: '{{httpMethod}}', 259 headers: headerParameters, 260 query: queryParameters, 261 {{#hasBodyParam}} 262 {{#bodyParam}} 263 {{#isContainer}} 264 body: requestParameters.{{paramName}}{{#isArray}}{{#items}}{{^isPrimitiveType}}.map({{datatype}}ToJSON){{/isPrimitiveType}}{{/items}}{{/isArray}}, 265 {{/isContainer}} 266 {{^isContainer}} 267 {{^isPrimitiveType}} 268 body: {{dataType}}ToJSON(requestParameters.{{paramName}}), 269 {{/isPrimitiveType}} 270 {{#isPrimitiveType}} 271 body: requestParameters.{{paramName}} as any, 272 {{/isPrimitiveType}} 273 {{/isContainer}} 274 {{/bodyParam}} 275 {{/hasBodyParam}} 276 {{#hasFormParams}} 277 body: formParams, 278 {{/hasFormParams}} 279 }); 280 281 {{#returnType}} 282 {{#isResponseFile}} 283 return new runtime.BlobApiResponse(response); 284 {{/isResponseFile}} 285 {{^isResponseFile}} 286 {{#returnTypeIsPrimitive}} 287 {{#isMap}} 288 return new runtime.JSONApiResponse<any>(response); 289 {{/isMap}} 290 {{#isArray}} 291 return new runtime.JSONApiResponse<any>(response); 292 {{/isArray}} 293 {{#returnSimpleType}} 294 return new runtime.TextApiResponse(response) as any; 295 {{/returnSimpleType}} 296 {{/returnTypeIsPrimitive}} 297 {{^returnTypeIsPrimitive}} 298 {{#isArray}} 299 return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map({{returnBaseType}}FromJSON)); 300 {{/isArray}} 301 {{^isArray}} 302 {{#isMap}} 303 return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, {{returnBaseType}}FromJSON)); 304 {{/isMap}} 305 {{^isMap}} 306 return new runtime.JSONApiResponse(response, (jsonValue) => {{returnBaseType}}FromJSON(jsonValue)); 307 {{/isMap}} 308 {{/isArray}} 309 {{/returnTypeIsPrimitive}} 310 {{/isResponseFile}} 311 {{/returnType}} 312 {{^returnType}} 313 return new runtime.TextApiResponse(response) as any; 314 {{/returnType}} 315 } 316 317 /** 318 {{#notes}} 319 * {{¬es}} 320 {{/notes}} 321 {{#summary}} 322 * {{&summary}} 323 {{/summary}} 324 */ 325 {{^useSingleRequestParameter}} 326 async {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{#isNullable}} | null{{/isNullable}}{{/isEnum}}{{^-last}}, {{/-last}}{{/allParams}}): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}> { 327 {{#returnType}} 328 const response = await this.{{nickname}}Raw({{#allParams.0}}{ {{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}} }{{/allParams.0}}); 329 return await response.value(); 330 {{/returnType}} 331 {{^returnType}} 332 await this.{{nickname}}Raw({{#allParams.0}}{ {{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}} }{{/allParams.0}}); 333 {{/returnType}} 334 } 335 {{/useSingleRequestParameter}} 336 {{#useSingleRequestParameter}} 337 async {{nickname}}({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request{{/allParams.0}}): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}> { 338 const response = await this.{{nickname}}Raw({{#allParams.0}}requestParameters{{/allParams.0}}); 339 return await response.value(); 340 } 341 {{/useSingleRequestParameter}} 342 343 {{/operation}} 344 } 345 {{/operations}} 346 {{#hasEnums}} 347 348 {{#operations}} 349 {{#operation}} 350 {{#allParams}} 351 {{#isEnum}} 352 /** 353 * @export 354 * @enum {string} 355 */ 356 export enum {{operationIdCamelCase}}{{enumName}} { 357 {{#allowableValues}} 358 {{#enumVars}} 359 {{{name}}} = {{{value}}}{{^-last}},{{/-last}} 360 {{/enumVars}} 361 {{/allowableValues}} 362 } 363 {{/isEnum}} 364 {{/allParams}} 365 {{/operation}} 366 {{/operations}} 367 {{/hasEnums}}