Skip to content

Commit 92e68b1

Browse files
committed
Updated onProgress in deno,cli,node,php,python
1 parent b2f3f02 commit 92e68b1

File tree

5 files changed

+45
-7
lines changed

5 files changed

+45
-7
lines changed

templates/cli/lib/commands/command.js.twig

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,13 @@ const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ {
137137
}
138138

139139
if (onProgress !== null) {
140-
onProgress(Math.min((counter+1) * libClient.CHUNK_SIZE, size) / size * 100);
140+
onProgress({
141+
$id: response['$id'],
142+
progress: Math.min((counter+1) * libClient.CHUNK_SIZE, size) / size * 100,
143+
sizeUploaded: end+1,
144+
chunksTotal: response['chunksTotal'],
145+
chunksUploaded: response['chunksUploaded']
146+
});
141147
}
142148
}
143149
}

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,15 @@ import { basename } from "https://deno.land/[email protected]/path/mod.ts";
2929
import { Service } from '../service.ts';
3030
import { Payload, Client } from '../client.ts';
3131
import { AppwriteException } from '../exception.ts';
32-
import type { Models } from '../models.d.ts'
32+
import type { Models } from '../models.d.ts';
33+
34+
export type UploadProgress = {
35+
$id: string;
36+
progress: number;
37+
sizeUploaded: number;
38+
chunksTotal: number;
39+
chunksUploaded: number;
40+
}
3341

3442
export class {{ service.name | caseUcfirst }} extends Service {
3543
{% for method in service.methods %}
@@ -48,7 +56,7 @@ export class {{ service.name | caseUcfirst }} extends Service {
4856
* @throws {AppwriteException}
4957
* @returns {Promise}
5058
*/
51-
async {{ method.name | caseCamel }}{% if generics %}<{{generics}}>{% endif %}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required %}?{% endif %}: {{ parameter.type | typeName }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress = (progress: number) => {}{% endif %}): Promise<{% if method.type == 'webAuth' %}Response{% elseif method.type == 'location' %}Response{% else %}{% if method.responseModel and method.responseModel != 'any' %}{% if not spec.definitions[method.responseModel].additionalProperties %}Models.{% endif %}{{method.responseModel | caseUcfirst}}{% if generics_return %}<{{generics_return}}>{% endif %}{% else %}Response{% endif %}{% endif %}> {
59+
async {{ method.name | caseCamel }}{% if generics %}<{{generics}}>{% endif %}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required %}?{% endif %}: {{ parameter.type | typeName }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress = (progress: UploadProgress) => {}{% endif %}): Promise<{% if method.type == 'webAuth' %}Response{% elseif method.type == 'location' %}Response{% else %}{% if method.responseModel and method.responseModel != 'any' %}{% if not spec.definitions[method.responseModel].additionalProperties %}Models.{% endif %}{{method.responseModel | caseUcfirst}}{% if generics_return %}<{{generics_return}}>{% endif %}{% else %}Response{% endif %}{% endif %}> {
5260
{% for parameter in method.parameters.all %}
5361
{% if parameter.required %}
5462
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} === 'undefined') {
@@ -137,7 +145,13 @@ export class {{ service.name | caseUcfirst }} extends Service {
137145
}
138146

139147
if (onProgress !== null) {
140-
onProgress(Math.min((counter+1) * Client.CHUNK_SIZE, size) / size * 100);
148+
onProgress({
149+
$id: response['$id'],
150+
progress: Math.min((counter+1) * Client.CHUNK_SIZE, size) / size * 100,
151+
sizeUploaded: end+1,
152+
chunksTotal: response['chunksTotal'],
153+
chunksUploaded: response['chunksUploaded']
154+
});
141155
}
142156
}
143157

templates/node/lib/services/service.js.twig

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,13 @@ class {{ service.name | caseUcfirst }} extends Service {
9696
}
9797

9898
if (onProgress !== null) {
99-
onProgress(Math.min((counter+1) * client.CHUNK_SIZE, size) / size * 100);
99+
onProgress({
100+
$id: response['$id'],
101+
progress: Math.min((counter+1) * client.CHUNK_SIZE, size) / size * 100,
102+
sizeUploaded: end+1,
103+
chunksTotal: response['chunksTotal'],
104+
chunksUploaded: response['chunksUploaded']
105+
});
100106
}
101107
}
102108

templates/php/src/Services/Service.php.twig

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,13 @@ class {{ service.name | caseUcfirst }} extends Service
8989
$id = $response['$id'];
9090
}
9191
if($onProgress !== null) {
92-
$onProgress(min(($counter+1) * Client.CHUNK_SIZE, $size) / $size * 100);
92+
$onProgress([
93+
'$id' => $response['$id'],
94+
'progress' => min(($counter+1) * Client.CHUNK_SIZE, $size) / $size * 100,
95+
'sizeUploaded' => $end + 1,
96+
'chunksTotal' => $response['chunksTotal'],
97+
'chunksUploaded' => $response['chunksUploaded']
98+
]);
9399
}
94100
}
95101
@fclose($handle);

templates/python/package/client.py.twig

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,13 @@ class Client:
142142
headers["x-{{ spec.title | caseLower }}-id"] = result["$id"]
143143

144144
if on_progress is not None:
145-
on_progress(min(offset, size)/size * 100)
145+
on_progress({
146+
"$id": result["$id"],
147+
"progress": min(offset, size)/size * 100,
148+
"sizeUploaded": end+1,
149+
"chunksTotal": result["chunksTotal"],
150+
"chunksUploaded": result["chunksUploaded"],
151+
})
146152

147153
return result
148154

0 commit comments

Comments
 (0)