-
Notifications
You must be signed in to change notification settings - Fork 285
/
Copy pathmethod.mustache
96 lines (85 loc) · 3.54 KB
/
method.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
87
88
89
90
91
92
93
94
95
96
/**
* {{&summary}}
* @method
* @name {{&className}}#{{&methodName}}
* @param {object} parameters - method options and parameters
{{#parameters}}
{{^isSingleton}} * @param {{=<% %>=}}{<%&type%>}<%={{ }}=%> parameters.{{&camelCaseName}} - {{&description}}{{/isSingleton}}
{{/parameters}}
*/
{{&className}}.prototype.{{&methodName}} = function(parameters){
if(parameters === undefined) {
parameters = {};
}
{{#isES6}}let{{/isES6}}{{^isES6}}var{{/isES6}} deferred = {{#isNode}}Q{{/isNode}}{{^isNode}}$q{{/isNode}}.defer();
{{#isES6}}let{{/isES6}}{{^isES6}}var{{/isES6}} domain = this.domain, path = '{{&path}}';
{{#isES6}}let{{/isES6}}{{^isES6}}var{{/isES6}} body = {}, queryParameters = {}, headers = this.headers, form = {};
{{#isSecure}}
headers = this.setAuthHeaders(headers);
{{/isSecure}}
{{#headers}}
headers['{{&name}}'] = [{{&value}}];
{{/headers}}
{{#parameters}}
{{#isQueryParameter}}
{{#isSingleton}}
queryParameters['{{&name}}'] = '{{&singleton}}';
{{/isSingleton}}
{{^isSingleton}}
{{#isPatternType}}
Object.keys(parameters).forEach(function(parameterName) {
if(new RegExp('{{&pattern}}').test(parameterName)){
queryParameters[parameterName] = parameters[parameterName];
}
});
{{/isPatternType}}
{{#default}}
/** set default value **/
queryParameters['{{&name}}'] = {{&default}};
{{/default}}
{{^isPatternType}}
if(parameters['{{&camelCaseName}}'] !== undefined){
queryParameters['{{&name}}'] = parameters['{{&camelCaseName}}'];
}
{{/isPatternType}}
{{/isSingleton}}
{{/isQueryParameter}}
{{#isPathParameter}}
path = path.replace('{{=<% %>=}}{<%&name%>}<%={{ }}=%>', parameters['{{&camelCaseName}}']);
{{/isPathParameter}}
{{#isHeaderParameter}}
{{#isSingleton}}
headers['{{&name}}'] = '{{&singleton}}';
{{/isSingleton}}
{{^isSingleton}}
if(parameters['{{&camelCaseName}}'] !== undefined){
headers['{{&name}}'] = parameters['{{&camelCaseName}}'];
}
{{/isSingleton}}
{{/isHeaderParameter}}
{{#isBodyParameter}}
if(parameters['{{&camelCaseName}}'] !== undefined){
body = parameters['{{&camelCaseName}}'];
}
{{/isBodyParameter}}
{{#isFormParameter}}
{{#isSingleton}}
form['{{&name}}'] = '{{&singleton}}';
{{/isSingleton}}
{{^isSingleton}}
if(parameters['{{&camelCaseName}}'] !== undefined){
form['{{&name}}'] = parameters['{{&camelCaseName}}'];
}
{{/isSingleton}}
{{/isFormParameter}}
{{#required}}
if(parameters['{{&camelCaseName}}'] === undefined){
deferred.reject(new Error('Missing required {{¶mType}} parameter: {{&camelCaseName}}'));
return deferred.promise;
}
{{/required}}
{{/parameters}}
queryParameters = mergeQueryParams(parameters, queryParameters);
this.request('{{method}}', domain + path, parameters, body, headers, queryParameters, form, deferred);
return deferred.promise;
};