11const Service = require('../service.js');
2+ const {{spec .title | caseUcfirst }}Exception = require('../exception.js');
23
34class {{ service .name | caseUcfirst }} extends Service {
45{% for method in service .methods %}
@@ -11,32 +12,44 @@ class {{ service.name | caseUcfirst }} extends Service {
1112 *
1213{% endif %}
1314{% for parameter in method .parameters .all %}
14- * @param {{ parameter .type | typeName }} {{ parameter .name | caseCamel }}
15+ * @param {{ ' { ' }}{{ parameter .type | typeName }}{{ ' } ' }} {{ parameter .name | caseCamel }}
1516{% endfor %}
16- * @throws Exception
17- * @return {}
17+ * @throws {{ ' {' }}{{ spec .title | caseUcfirst }}Exception}
18+ * @returns {% if method .type == ' location' %}{string}{% else %}{Promise}{% endif %}
19+
1820 */
19- async {{ method .name | caseCamel }}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel }}{{ parameter | paramDefault }}{% if not loop .last %}, {% endif %}{% endfor %}) {
20- let path = '{{ method .path }}'{% for parameter in method .parameters .path %}.replace(new RegExp('{{ ' {' }}{{ parameter .name | caseCamel }}{{ ' }' }}', 'g'), {{ parameter .name | caseCamel }}){% endfor %};
21-
22- return await this.client.call('{{ method .method | caseLower }}', path, {
23- {% for parameter in method .parameters .header %}
24- '{{ parameter .name }}': ${{ parameter .name | caseCamel }},
25- {% endfor %}
26- {% for key , header in method .headers %}
27- '{{ key }}': '{{ header }}',
21+ async {{ method .name | caseCamel }}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel }}{% if not loop .last %}, {% endif %}{% endfor %}) {
22+ {% for parameter in method .parameters .all %}
23+ {% if parameter .required %}
24+ if (typeof {{ parameter .name | caseCamel }} === undefined) {
25+ throw new {{spec .title | caseUcfirst }}Exception('Missing required parameter: "{{ parameter .name | caseCamel }}"');
26+ }
27+
28+ {% endif %}
2829{% endfor %}
29- },
30- {
30+ let path = '{{ method . path }}'{% for parameter in method . parameters . path %}.replace('{{ ' { ' }}{{ parameter . name | caseCamel }}{{ ' } ' }}', {{ parameter . name | caseCamel }}){% endfor %};
31+ let payload = {};
3132{% for parameter in method .parameters .query %}
32- '{{ parameter .name }}': {{ parameter .name | caseCamel }}{% if not loop .last %},{% endif %}
3333
34+ if (typeof {{ parameter .name | caseCamel }} !== undefined) {
35+ payload['{{ parameter .name }}'] = {{ parameter .name | caseCamel }};
36+ }
3437{% endfor %}
3538{% for parameter in method .parameters .body %}
36- '{{ parameter .name }}': {{ parameter .name | caseCamel }}{% if not loop .last %},{% endif %}
3739
40+ if (typeof {{ parameter .name | caseCamel }} !== undefined) {
41+ payload['{{ parameter .name }}'] = {{ parameter .name | caseCamel }};
42+ }
43+ {% endfor %}
44+
45+ return await this.client.call('{{ method .method | caseLower }}', path, {
46+ {% for parameter in method .parameters .header %}
47+ '{{ parameter .name }}': ${{ parameter .name | caseCamel }},
48+ {% endfor %}
49+ {% for key , header in method .headers %}
50+ '{{ key }}': '{{ header }}',
3851{% endfor %}
39- } {% if method .type == ' location' %}, 'arraybuffer'{% endif %});
52+ }, payload {% if method .type == ' location' %}, 'arraybuffer'{% endif %});
4053 }
4154{% endfor %}
4255}
0 commit comments