forked from synapze/TypescriptAngular2CodeGen
-
Notifications
You must be signed in to change notification settings - Fork 0
/
api.mustache
86 lines (73 loc) · 2.46 KB
/
api.mustache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import {Http, Headers, RequestOptionsArgs, Response} from 'angular2/http';
import {Injectable} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import * as lib from './api.d';
/* tslint:disable:no-unused-variable member-ordering */
{{#operations}}
'use strict';
{{#description}}
/**
* {{&description}}
*/
{{/description}}
@Injectable()
export class {{classname}} {
protected basePath = '{{basePath}}';
public defaultHeaders : Headers = new Headers();
constructor(protected http: Http, basePath?: string) {
if (basePath) {
this.basePath = basePath;
}
}
{{#operation}}
/**
* {{summary}}
* {{notes}}
{{#allParams}}* @param {{paramName}} {{description}}
{{/allParams}}*/
public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: lib.{{{dataType}}}, {{/allParams}}extraHttpRequestParams?: any ) : Observable<lib.{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}{}{{/returnType}}> {
const path = this.basePath + '{{path}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};
let queryParameters: any = {};
let headerParams = this.defaultHeaders;
{{#hasFormParams}}
let formParams: any = {};
{{/hasFormParams}}
{{#allParams}}
{{#required}}
// verify required parameter '{{paramName}}' is set
if (!{{paramName}}) {
throw new Error('Missing required parameter {{paramName}} when calling {{nickname}}');
}
{{/required}}
{{/allParams}}
{{#queryParams}}
if ({{paramName}} !== undefined) {
queryParameters['{{baseName}}'] = {{paramName}};
}
{{/queryParams}}
{{#headerParams}}
headerParams.set('{{baseName}}', {{paramName }});
{{/headerParams}}
{{#hasFormParams}}
headerParams.set('Content-Type', 'application/x-www-form-urlencoded');
{{/hasFormParams}}
{{#formParams}}
formParams['{{baseName}}'] = {{paramName}};
{{/formParams}}
let requestOptions: RequestOptionsArgs = {
method: '{{httpMethod}}',
headers: headerParams,
search: queryParameters
};
{{#bodyParam}}
requestOptions.body = JSON.stringify({{paramName}});
{{/bodyParam}}
return this.http.request(path, requestOptions)
.map((response: Response) => {
return response.json();
});
}
{{/operation}}
}
{{/operations}}