Skip to content

Commit 3f76c8e

Browse files
committed
Implemented resumable upload
1 parent 1d5293d commit 3f76c8e

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

templates/deno/src/services/service.ts.twig

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,35 @@ export class {{ service.name | caseUcfirst }} extends Service {
101101
let id = undefined;
102102
let response = undefined;
103103

104+
let counter = 0;
104105
const totalCounters = Math.ceil(size / Client.CHUNK_SIZE);
105106

106-
for (let counter = 0; counter < totalCounters; counter++) {
107-
const start = (counter * Client.CHUNK_SIZE);
108-
const end = Math.min((((counter * Client.CHUNK_SIZE) + Client.CHUNK_SIZE) - 1), size);
109-
const headers: { [header: string]: string } = {
107+
const headers: { [header: string]: string } = {
110108
{% for parameter in method.parameters.header %}
111-
'{{ parameter.name }}': ${{ parameter.name | caseCamel | escapeKeyword }},
109+
'{{ parameter.name }}': ${{ parameter.name | caseCamel | escapeKeyword }},
112110
{% endfor %}
113111
{% for key, header in method.headers %}
114-
'{{ key }}': '{{ header }}',
112+
'{{ key }}': '{{ header }}',
113+
{% endfor %}
114+
};
115+
116+
{% for parameter in method.parameters.all %}
117+
{% if parameter.isUploadID %}
118+
if({{ parameter.name | caseCamel | escapeKeyword }} != 'unique()') {
119+
try {
120+
response = await this.client.call('get', path + '/' + {{ parameter.name }}, headers);
121+
counter = response.chunksUploaded;
122+
} catch(e) {
123+
}
124+
}
125+
{% endif %}
115126
{% endfor %}
116-
'content-range': 'bytes ' + start + '-' + end + '/' + size
117-
};
127+
128+
for (counter; counter < totalCounters; counter++) {
129+
const start = (counter * Client.CHUNK_SIZE);
130+
const end = Math.min((((counter * Client.CHUNK_SIZE) + Client.CHUNK_SIZE) - 1), size);
131+
132+
headers['content-range'] = 'bytes ' + start + '-' + end + '/' + size
118133

119134
if (id) {
120135
headers['x-{{spec.title | caseLower }}-id'] = id;

0 commit comments

Comments
 (0)