@@ -11,159 +11,159 @@ export class {{ service.name | caseUcfirst }} extends Service {
11
11
}
12
12
{% for method in service .methods %}
13
13
14
- /**
15
- * {{ method .title }}
16
- *
14
+ /**
15
+ * {{ method .title }}
16
+ *
17
17
{% if method .description %}
18
- {{ method .description | comment3 }}
18
+ {{ method .description | comment2 }}
19
19
{% endif %}
20
- *
20
+ *
21
21
{% for parameter in method .parameters .all %}
22
- * @param {{ ' {' }}{{ parameter | getPropertyType(method ) | raw }}{{ ' }' }} {{ parameter .name | caseCamel | escapeKeyword }}
22
+ * @param {{ ' {' }}{{ parameter | getPropertyType(method ) | raw }}{{ ' }' }} {{ parameter .name | caseCamel | escapeKeyword }}
23
23
{% endfor %}
24
- * @throws {{ ' {' }}{{ spec .title | caseUcfirst }}Exception}
25
- * @returns {% if method .type == ' webAuth' %}{void|string}{% elseif method .type == ' location' %}{URL}{% else %}{Promise}{% endif %}
24
+ * @throws {{ ' {' }}{{ spec .title | caseUcfirst }}Exception}
25
+ * @returns {% if method .type == ' webAuth' %}{void|string}{% elseif method .type == ' location' %}{URL}{% else %}{Promise}{% endif %}
26
26
27
- */
28
- {% if method .type != ' location' and method .type != ' webAuth' %}async {% endif %}{{ method .name | caseCamel }}{{ method .responseModel | getGenerics(spec ) | raw }}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel | escapeKeyword }}{% if not parameter .required or parameter .nullable %}?{% endif %}: {{ parameter | getPropertyType(method ) | raw }}{% if not loop .last %}, {% endif %}{% endfor %}{% if ' multipart/form-data' in method .consumes %}, onProgress = (progress: UploadProgress) => {}{% endif %}): {{ method | getReturn(spec ) | raw }} {
27
+ */
28
+ {% if method .type != ' location' and method .type != ' webAuth' %}async {% endif %}{{ method .name | caseCamel }}{{ method .responseModel | getGenerics(spec ) | raw }}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel | escapeKeyword }}{% if not parameter .required or parameter .nullable %}?{% endif %}: {{ parameter | getPropertyType(method ) | raw }}{% if not loop .last %}, {% endif %}{% endfor %}{% if ' multipart/form-data' in method .consumes %}, onProgress = (progress: UploadProgress) => {}{% endif %}): {{ method | getReturn(spec ) | raw }} {
29
29
{% for parameter in method .parameters .all %}
30
30
{% if parameter .required %}
31
- if (typeof {{ parameter .name | caseCamel | escapeKeyword }} === 'undefined') {
32
- throw new {{spec .title | caseUcfirst }}Exception('Missing required parameter: "{{ parameter .name | caseCamel | escapeKeyword }}"');
33
- }
31
+ if (typeof {{ parameter .name | caseCamel | escapeKeyword }} === 'undefined') {
32
+ throw new {{spec .title | caseUcfirst }}Exception('Missing required parameter: "{{ parameter .name | caseCamel | escapeKeyword }}"');
33
+ }
34
34
35
35
{% endif %}
36
36
{% endfor %}
37
- let path = '{{ method .path }}'{% for parameter in method .parameters .path %}.replace('{{ ' {' }}{{ parameter .name | caseCamel | escapeKeyword }}{{ ' }' }}', {{ parameter .name | caseCamel | escapeKeyword }}){% endfor %};
38
- let payload: Payload = {};
37
+ let path = '{{ method .path }}'{% for parameter in method .parameters .path %}.replace('{{ ' {' }}{{ parameter .name | caseCamel | escapeKeyword }}{{ ' }' }}', {{ parameter .name | caseCamel | escapeKeyword }}){% endfor %};
38
+ let payload: Payload = {};
39
39
40
40
{% for parameter in method .parameters .query %}
41
- if (typeof {{ parameter .name | caseCamel | escapeKeyword }} !== 'undefined') {
42
- payload['{{ parameter .name }}'] = {{ parameter .name | caseCamel | escapeKeyword }};
43
- }
41
+ if (typeof {{ parameter .name | caseCamel | escapeKeyword }} !== 'undefined') {
42
+ payload['{{ parameter .name }}'] = {{ parameter .name | caseCamel | escapeKeyword }};
43
+ }
44
44
45
45
{% endfor %}
46
46
{% for parameter in method .parameters .body %}
47
- if (typeof {{ parameter .name | caseCamel | escapeKeyword }} !== 'undefined') {
48
- payload['{{ parameter .name }}'] = {{ parameter .name | caseCamel | escapeKeyword }};
49
- }
47
+ if (typeof {{ parameter .name | caseCamel | escapeKeyword }} !== 'undefined') {
48
+ payload['{{ parameter .name }}'] = {{ parameter .name | caseCamel | escapeKeyword }};
49
+ }
50
50
51
51
{% endfor %}
52
- const uri = new URL(this.client.config.endpoint + path);
52
+ const uri = new URL(this.client.config.endpoint + path);
53
53
{% if method .type == ' location' or method .type == ' webAuth' %}
54
54
{% if method .auth | length > 0 %}
55
55
{% for node in method .auth %}
56
56
{% for key ,header in node | keys %}
57
- payload['{{header | caseLower}}'] = this.client.config.{{header | caseLower}};
57
+ payload['{{header | caseLower}}'] = this.client.config.{{header | caseLower}};
58
58
59
59
{% endfor %}
60
60
{% endfor %}
61
61
{% endif %}
62
62
63
- for (const [key, value] of Object.entries(Service.flatten(payload))) {
64
- uri.searchParams.append(key, value);
65
- }
63
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
64
+ uri.searchParams.append(key, value);
65
+ }
66
66
{% endif %}
67
67
{% if method .type == ' webAuth' %}
68
- if (typeof window !== 'undefined' && window?.location) {
69
- window.location.href = uri.toString();
70
- } else {
71
- return uri;
72
- }
73
- {% elseif method .type == ' location' %}
68
+ if (typeof window !== 'undefined' && window?.location) {
69
+ window.location.href = uri.toString();
70
+ } else {
74
71
return uri;
72
+ }
73
+ {% elseif method .type == ' location' %}
74
+ return uri;
75
75
{% else %}
76
76
{% if ' multipart/form-data' in method .consumes %}
77
77
{% for parameter in method .parameters .all %}
78
78
{% if parameter .type == ' file' %}
79
79
80
- if(!({{ parameter .name | caseCamel | escapeKeyword }} instanceof File)) {
81
- throw new {{spec .title | caseUcfirst }}Exception('Parameter "{{ parameter .name | caseCamel | escapeKeyword }}" has to be a File.');
82
- }
80
+ if(!({{ parameter .name | caseCamel | escapeKeyword }} instanceof File)) {
81
+ throw new {{spec .title | caseUcfirst }}Exception('Parameter "{{ parameter .name | caseCamel | escapeKeyword }}" has to be a File.');
82
+ }
83
83
84
- const size = {{ parameter .name | caseCamel | escapeKeyword }}.size;
84
+ const size = {{ parameter .name | caseCamel | escapeKeyword }}.size;
85
85
86
- if (size < = Service.CHUNK_SIZE) {
87
- return await this.client.call('{{ method .method | caseLower }}', uri, {
86
+ if (size < = Service.CHUNK_SIZE) {
87
+ return await this.client.call('{{ method .method | caseLower }}', uri, {
88
88
89
89
{% for parameter in method .parameters .header %}
90
- '{{ parameter .name | caseCamel | escapeKeyword }}': this.client.${{ parameter .name | caseCamel | escapeKeyword }},
90
+ '{{ parameter .name | caseCamel | escapeKeyword }}': this.client.${{ parameter .name | caseCamel | escapeKeyword }},
91
91
{% endfor %}
92
92
{% for key , header in method .headers %}
93
- '{{ key }}': '{{ header }}',
93
+ '{{ key }}': '{{ header }}',
94
94
{% endfor %}
95
- }, payload);
96
- }
97
- let id = undefined;
98
- let response = undefined;
95
+ }, payload);
96
+ }
97
+ let id = undefined;
98
+ let response = undefined;
99
99
100
- const headers: { [header: string]: string } = {
100
+ const headers: { [header: string]: string } = {
101
101
{% for parameter in method .parameters .header %}
102
- '{{ parameter .name | caseCamel | escapeKeyword }}': this.client.${{ parameter .name | caseCamel | escapeKeyword }},
102
+ '{{ parameter .name | caseCamel | escapeKeyword }}': this.client.${{ parameter .name | caseCamel | escapeKeyword }},
103
103
{% endfor %}
104
104
{% for key , header in method .headers %}
105
- '{{ key }}': '{{ header }}',
105
+ '{{ key }}': '{{ header }}',
106
106
{% endfor %}
107
- }
107
+ }
108
108
109
- let counter = 0;
110
- const totalCounters = Math.ceil(size / Service.CHUNK_SIZE);
109
+ let counter = 0;
110
+ const totalCounters = Math.ceil(size / Service.CHUNK_SIZE);
111
111
{% for parameter in method .parameters .all %}
112
112
{% if parameter .isUploadID %}
113
- if({{ parameter .name | caseCamel | escapeKeyword }} != 'unique()') {
114
- try {
115
- response = await this.client.call('GET', new URL(this.client.config.endpoint + path + '/' + {{ parameter .name }}), headers);
116
- counter = response.chunksUploaded;
117
- } catch(e) {
118
- }
113
+ if({{ parameter .name | caseCamel | escapeKeyword }} != 'unique()') {
114
+ try {
115
+ response = await this.client.call('GET', new URL(this.client.config.endpoint + path + '/' + {{ parameter .name }}), headers);
116
+ counter = response.chunksUploaded;
117
+ } catch(e) {
119
118
}
119
+ }
120
120
{% endif %}
121
121
{% endfor %}
122
122
123
- for (counter; counter < totalCounters; counter++) {
124
- const start = (counter * Service.CHUNK_SIZE);
125
- const end = Math.min((((counter * Service.CHUNK_SIZE) + Service.CHUNK_SIZE) - 1), size);
123
+ for (counter; counter < totalCounters; counter++) {
124
+ const start = (counter * Service.CHUNK_SIZE);
125
+ const end = Math.min((((counter * Service.CHUNK_SIZE) + Service.CHUNK_SIZE) - 1), size);
126
126
127
- headers['content-range'] = 'bytes ' + start + '-' + end + '/' + size
127
+ headers['content-range'] = 'bytes ' + start + '-' + end + '/' + size
128
128
129
- if (id) {
130
- headers['x-{{spec .title | caseLower }}-id'] = id;
131
- }
129
+ if (id) {
130
+ headers['x-{{spec .title | caseLower }}-id'] = id;
131
+ }
132
132
133
- const stream = {{ parameter .name | caseCamel | escapeKeyword }}.slice(start, end + 1);
134
- payload['{{ parameter .name }}'] = new File([stream], {{ parameter .name | caseCamel | escapeKeyword }}.name);
133
+ const stream = {{ parameter .name | caseCamel | escapeKeyword }}.slice(start, end + 1);
134
+ payload['{{ parameter .name }}'] = new File([stream], {{ parameter .name | caseCamel | escapeKeyword }}.name);
135
135
136
- response = await this.client.call('{{ method .method | caseLower }}', uri, headers, payload);
136
+ response = await this.client.call('{{ method .method | caseLower }}', uri, headers, payload);
137
137
138
- if (!id) {
139
- id = response['$id'];
140
- }
138
+ if (!id) {
139
+ id = response['$id'];
140
+ }
141
141
142
- if (onProgress) {
143
- onProgress({
144
- $id: response.$id,
145
- progress: Math.min((counter + 1) * Service.CHUNK_SIZE - 1, size) / size * 100,
146
- sizeUploaded: end,
147
- chunksTotal: response.chunksTotal,
148
- chunksUploaded: response.chunksUploaded
149
- });
150
- }
142
+ if (onProgress) {
143
+ onProgress({
144
+ $id: response.$id,
145
+ progress: Math.min((counter + 1) * Service.CHUNK_SIZE - 1, size) / size * 100,
146
+ sizeUploaded: end,
147
+ chunksTotal: response.chunksTotal,
148
+ chunksUploaded: response.chunksUploaded
149
+ });
151
150
}
151
+ }
152
152
153
- return response;
153
+ return response;
154
154
{% endif %}
155
155
{% endfor %}
156
156
{% else %}
157
- return await this.client.call('{{ method .method | caseLower }}', uri, {
157
+ return await this.client.call('{{ method .method | caseLower }}', uri, {
158
158
{% for parameter in method .parameters .header %}
159
- '{{ parameter .name | caseCamel | escapeKeyword }}': this.client.${{ parameter .name | caseCamel | escapeKeyword }},
159
+ '{{ parameter .name | caseCamel | escapeKeyword }}': this.client.${{ parameter .name | caseCamel | escapeKeyword }},
160
160
{% endfor %}
161
161
{% for key , header in method .headers %}
162
- '{{ key }}': '{{ header }}',
162
+ '{{ key }}': '{{ header }}',
163
163
{% endfor %}
164
- }, payload);
164
+ }, payload);
165
165
{% endif %}
166
166
{% endif %}
167
- }
167
+ }
168
168
{% endfor %}
169
169
};
0 commit comments