@appwrite.io/console 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.github/workflows/publish.yml +18 -0
  2. package/CHANGELOG.md +1 -0
  3. package/LICENSE +12 -0
  4. package/README.md +111 -0
  5. package/dist/cjs/package.json +3 -0
  6. package/dist/esm/package.json +3 -0
  7. package/docs/examples/account/create-anonymous-session.md +18 -0
  8. package/docs/examples/account/create-email-session.md +18 -0
  9. package/docs/examples/account/create-j-w-t.md +18 -0
  10. package/docs/examples/account/create-magic-u-r-l-session.md +18 -0
  11. package/docs/examples/account/create-o-auth2session.md +14 -0
  12. package/docs/examples/account/create-phone-session.md +18 -0
  13. package/docs/examples/account/create-phone-verification.md +18 -0
  14. package/docs/examples/account/create-recovery.md +18 -0
  15. package/docs/examples/account/create-verification.md +18 -0
  16. package/docs/examples/account/create.md +18 -0
  17. package/docs/examples/account/delete-session.md +18 -0
  18. package/docs/examples/account/delete-sessions.md +18 -0
  19. package/docs/examples/account/get-prefs.md +18 -0
  20. package/docs/examples/account/get-session.md +18 -0
  21. package/docs/examples/account/get.md +18 -0
  22. package/docs/examples/account/list-logs.md +18 -0
  23. package/docs/examples/account/list-sessions.md +18 -0
  24. package/docs/examples/account/update-email.md +18 -0
  25. package/docs/examples/account/update-magic-u-r-l-session.md +18 -0
  26. package/docs/examples/account/update-name.md +18 -0
  27. package/docs/examples/account/update-password.md +18 -0
  28. package/docs/examples/account/update-phone-session.md +18 -0
  29. package/docs/examples/account/update-phone-verification.md +18 -0
  30. package/docs/examples/account/update-phone.md +18 -0
  31. package/docs/examples/account/update-prefs.md +18 -0
  32. package/docs/examples/account/update-recovery.md +18 -0
  33. package/docs/examples/account/update-session.md +18 -0
  34. package/docs/examples/account/update-status.md +18 -0
  35. package/docs/examples/account/update-verification.md +18 -0
  36. package/docs/examples/avatars/get-browser.md +14 -0
  37. package/docs/examples/avatars/get-credit-card.md +14 -0
  38. package/docs/examples/avatars/get-favicon.md +14 -0
  39. package/docs/examples/avatars/get-flag.md +14 -0
  40. package/docs/examples/avatars/get-image.md +14 -0
  41. package/docs/examples/avatars/get-initials.md +14 -0
  42. package/docs/examples/avatars/get-q-r.md +14 -0
  43. package/docs/examples/databases/create-boolean-attribute.md +18 -0
  44. package/docs/examples/databases/create-collection.md +18 -0
  45. package/docs/examples/databases/create-datetime-attribute.md +18 -0
  46. package/docs/examples/databases/create-document.md +18 -0
  47. package/docs/examples/databases/create-email-attribute.md +18 -0
  48. package/docs/examples/databases/create-enum-attribute.md +18 -0
  49. package/docs/examples/databases/create-float-attribute.md +18 -0
  50. package/docs/examples/databases/create-index.md +18 -0
  51. package/docs/examples/databases/create-integer-attribute.md +18 -0
  52. package/docs/examples/databases/create-ip-attribute.md +18 -0
  53. package/docs/examples/databases/create-string-attribute.md +18 -0
  54. package/docs/examples/databases/create-url-attribute.md +18 -0
  55. package/docs/examples/databases/create.md +18 -0
  56. package/docs/examples/databases/delete-attribute.md +18 -0
  57. package/docs/examples/databases/delete-collection.md +18 -0
  58. package/docs/examples/databases/delete-document.md +18 -0
  59. package/docs/examples/databases/delete-index.md +18 -0
  60. package/docs/examples/databases/delete.md +18 -0
  61. package/docs/examples/databases/get-attribute.md +18 -0
  62. package/docs/examples/databases/get-collection-usage.md +18 -0
  63. package/docs/examples/databases/get-collection.md +18 -0
  64. package/docs/examples/databases/get-database-usage.md +18 -0
  65. package/docs/examples/databases/get-document.md +18 -0
  66. package/docs/examples/databases/get-index.md +18 -0
  67. package/docs/examples/databases/get-usage.md +18 -0
  68. package/docs/examples/databases/get.md +18 -0
  69. package/docs/examples/databases/list-attributes.md +18 -0
  70. package/docs/examples/databases/list-collection-logs.md +18 -0
  71. package/docs/examples/databases/list-collections.md +18 -0
  72. package/docs/examples/databases/list-document-logs.md +18 -0
  73. package/docs/examples/databases/list-documents.md +18 -0
  74. package/docs/examples/databases/list-indexes.md +18 -0
  75. package/docs/examples/databases/list-logs.md +18 -0
  76. package/docs/examples/databases/list.md +18 -0
  77. package/docs/examples/databases/update-collection.md +18 -0
  78. package/docs/examples/databases/update-document.md +18 -0
  79. package/docs/examples/databases/update.md +18 -0
  80. package/docs/examples/functions/create-build.md +18 -0
  81. package/docs/examples/functions/create-deployment.md +18 -0
  82. package/docs/examples/functions/create-execution.md +18 -0
  83. package/docs/examples/functions/create-variable.md +18 -0
  84. package/docs/examples/functions/create.md +18 -0
  85. package/docs/examples/functions/delete-deployment.md +18 -0
  86. package/docs/examples/functions/delete-variable.md +18 -0
  87. package/docs/examples/functions/delete.md +18 -0
  88. package/docs/examples/functions/get-deployment.md +18 -0
  89. package/docs/examples/functions/get-execution.md +18 -0
  90. package/docs/examples/functions/get-function-usage.md +18 -0
  91. package/docs/examples/functions/get-usage.md +18 -0
  92. package/docs/examples/functions/get-variable.md +18 -0
  93. package/docs/examples/functions/get.md +18 -0
  94. package/docs/examples/functions/list-deployments.md +18 -0
  95. package/docs/examples/functions/list-executions.md +18 -0
  96. package/docs/examples/functions/list-runtimes.md +18 -0
  97. package/docs/examples/functions/list-variables.md +18 -0
  98. package/docs/examples/functions/list.md +18 -0
  99. package/docs/examples/functions/update-deployment.md +18 -0
  100. package/docs/examples/functions/update-variable.md +18 -0
  101. package/docs/examples/functions/update.md +18 -0
  102. package/docs/examples/graphql/mutation.md +18 -0
  103. package/docs/examples/graphql/query.md +18 -0
  104. package/docs/examples/health/get-antivirus.md +18 -0
  105. package/docs/examples/health/get-cache.md +18 -0
  106. package/docs/examples/health/get-d-b.md +18 -0
  107. package/docs/examples/health/get-queue-certificates.md +18 -0
  108. package/docs/examples/health/get-queue-functions.md +18 -0
  109. package/docs/examples/health/get-queue-logs.md +18 -0
  110. package/docs/examples/health/get-queue-webhooks.md +18 -0
  111. package/docs/examples/health/get-storage-local.md +18 -0
  112. package/docs/examples/health/get-time.md +18 -0
  113. package/docs/examples/health/get.md +18 -0
  114. package/docs/examples/locale/get.md +18 -0
  115. package/docs/examples/locale/list-continents.md +18 -0
  116. package/docs/examples/locale/list-countries-e-u.md +18 -0
  117. package/docs/examples/locale/list-countries-phones.md +18 -0
  118. package/docs/examples/locale/list-countries.md +18 -0
  119. package/docs/examples/locale/list-currencies.md +18 -0
  120. package/docs/examples/locale/list-languages.md +18 -0
  121. package/docs/examples/projects/create-domain.md +18 -0
  122. package/docs/examples/projects/create-key.md +18 -0
  123. package/docs/examples/projects/create-platform.md +18 -0
  124. package/docs/examples/projects/create-webhook.md +18 -0
  125. package/docs/examples/projects/create.md +18 -0
  126. package/docs/examples/projects/delete-domain.md +18 -0
  127. package/docs/examples/projects/delete-key.md +18 -0
  128. package/docs/examples/projects/delete-platform.md +18 -0
  129. package/docs/examples/projects/delete-webhook.md +18 -0
  130. package/docs/examples/projects/delete.md +18 -0
  131. package/docs/examples/projects/get-domain.md +18 -0
  132. package/docs/examples/projects/get-key.md +18 -0
  133. package/docs/examples/projects/get-platform.md +18 -0
  134. package/docs/examples/projects/get-usage.md +18 -0
  135. package/docs/examples/projects/get-webhook.md +18 -0
  136. package/docs/examples/projects/get.md +18 -0
  137. package/docs/examples/projects/list-domains.md +18 -0
  138. package/docs/examples/projects/list-keys.md +18 -0
  139. package/docs/examples/projects/list-platforms.md +18 -0
  140. package/docs/examples/projects/list-webhooks.md +18 -0
  141. package/docs/examples/projects/list.md +18 -0
  142. package/docs/examples/projects/update-auth-duration.md +18 -0
  143. package/docs/examples/projects/update-auth-limit.md +18 -0
  144. package/docs/examples/projects/update-auth-sessions-limit.md +18 -0
  145. package/docs/examples/projects/update-auth-status.md +18 -0
  146. package/docs/examples/projects/update-domain-verification.md +18 -0
  147. package/docs/examples/projects/update-key.md +18 -0
  148. package/docs/examples/projects/update-o-auth2.md +18 -0
  149. package/docs/examples/projects/update-platform.md +18 -0
  150. package/docs/examples/projects/update-service-status.md +18 -0
  151. package/docs/examples/projects/update-webhook-signature.md +18 -0
  152. package/docs/examples/projects/update-webhook.md +18 -0
  153. package/docs/examples/projects/update.md +18 -0
  154. package/docs/examples/storage/create-bucket.md +18 -0
  155. package/docs/examples/storage/create-file.md +18 -0
  156. package/docs/examples/storage/delete-bucket.md +18 -0
  157. package/docs/examples/storage/delete-file.md +18 -0
  158. package/docs/examples/storage/get-bucket-usage.md +18 -0
  159. package/docs/examples/storage/get-bucket.md +18 -0
  160. package/docs/examples/storage/get-file-download.md +14 -0
  161. package/docs/examples/storage/get-file-preview.md +14 -0
  162. package/docs/examples/storage/get-file-view.md +14 -0
  163. package/docs/examples/storage/get-file.md +18 -0
  164. package/docs/examples/storage/get-usage.md +18 -0
  165. package/docs/examples/storage/list-buckets.md +18 -0
  166. package/docs/examples/storage/list-files.md +18 -0
  167. package/docs/examples/storage/update-bucket.md +18 -0
  168. package/docs/examples/storage/update-file.md +18 -0
  169. package/docs/examples/teams/create-membership.md +18 -0
  170. package/docs/examples/teams/create.md +18 -0
  171. package/docs/examples/teams/delete-membership.md +18 -0
  172. package/docs/examples/teams/delete.md +18 -0
  173. package/docs/examples/teams/get-membership.md +18 -0
  174. package/docs/examples/teams/get.md +18 -0
  175. package/docs/examples/teams/list-logs.md +18 -0
  176. package/docs/examples/teams/list-memberships.md +18 -0
  177. package/docs/examples/teams/list.md +18 -0
  178. package/docs/examples/teams/update-membership-roles.md +18 -0
  179. package/docs/examples/teams/update-membership-status.md +18 -0
  180. package/docs/examples/teams/update.md +18 -0
  181. package/docs/examples/users/create-argon2user.md +18 -0
  182. package/docs/examples/users/create-bcrypt-user.md +18 -0
  183. package/docs/examples/users/create-m-d5user.md +18 -0
  184. package/docs/examples/users/create-p-h-pass-user.md +18 -0
  185. package/docs/examples/users/create-s-h-a-user.md +18 -0
  186. package/docs/examples/users/create-scrypt-modified-user.md +18 -0
  187. package/docs/examples/users/create-scrypt-user.md +18 -0
  188. package/docs/examples/users/create.md +18 -0
  189. package/docs/examples/users/delete-session.md +18 -0
  190. package/docs/examples/users/delete-sessions.md +18 -0
  191. package/docs/examples/users/delete.md +18 -0
  192. package/docs/examples/users/get-prefs.md +18 -0
  193. package/docs/examples/users/get-usage.md +18 -0
  194. package/docs/examples/users/get.md +18 -0
  195. package/docs/examples/users/list-logs.md +18 -0
  196. package/docs/examples/users/list-memberships.md +18 -0
  197. package/docs/examples/users/list-sessions.md +18 -0
  198. package/docs/examples/users/list.md +18 -0
  199. package/docs/examples/users/update-email-verification.md +18 -0
  200. package/docs/examples/users/update-email.md +18 -0
  201. package/docs/examples/users/update-name.md +18 -0
  202. package/docs/examples/users/update-password.md +18 -0
  203. package/docs/examples/users/update-phone-verification.md +18 -0
  204. package/docs/examples/users/update-phone.md +18 -0
  205. package/docs/examples/users/update-prefs.md +18 -0
  206. package/docs/examples/users/update-status.md +18 -0
  207. package/package.json +40 -0
  208. package/rollup.config.js +31 -0
  209. package/src/client.ts +472 -0
  210. package/src/id.ts +9 -0
  211. package/src/index.ts +17 -0
  212. package/src/models.ts +2540 -0
  213. package/src/permission.ts +22 -0
  214. package/src/query.ts +56 -0
  215. package/src/role.ts +34 -0
  216. package/src/service.ts +30 -0
  217. package/src/services/account.ts +1009 -0
  218. package/src/services/avatars.ts +351 -0
  219. package/src/services/databases.ts +1525 -0
  220. package/src/services/functions.ts +814 -0
  221. package/src/services/graphql.ts +68 -0
  222. package/src/services/health.ts +202 -0
  223. package/src/services/locale.ts +150 -0
  224. package/src/services/projects.ts +1235 -0
  225. package/src/services/storage.ts +691 -0
  226. package/src/services/teams.ts +445 -0
  227. package/src/services/users.ts +1020 -0
  228. package/tsconfig.json +24 -0
@@ -0,0 +1,351 @@
1
+ import { Service } from '../service';
2
+ import { AppwriteException, Client } from '../client';
3
+ import type { Models } from '../models';
4
+ import type { UploadProgress, Payload } from '../client';
5
+
6
+ export class Avatars extends Service {
7
+
8
+ constructor(client: Client)
9
+ {
10
+ super(client);
11
+ }
12
+
13
+ /**
14
+ * Get Browser Icon
15
+ *
16
+ * You can use this endpoint to show different browser icons to your users.
17
+ * The code argument receives the browser code as it appears in your user [GET
18
+ * /account/sessions](/docs/client/account#accountGetSessions) endpoint. Use
19
+ * width, height and quality arguments to change the output settings.
20
+ *
21
+ * When one dimension is specified and the other is 0, the image is scaled
22
+ * with preserved aspect ratio. If both dimensions are 0, the API provides an
23
+ * image at source quality. If dimensions are not specified, the default size
24
+ * of image returned is 100x100px.
25
+ *
26
+ * @param {string} code
27
+ * @param {number} width
28
+ * @param {number} height
29
+ * @param {number} quality
30
+ * @throws {AppwriteException}
31
+ * @returns {URL}
32
+ */
33
+ getBrowser(code: string, width?: number, height?: number, quality?: number): URL {
34
+ if (typeof code === 'undefined') {
35
+ throw new AppwriteException('Missing required parameter: "code"');
36
+ }
37
+
38
+ let path = '/avatars/browsers/{code}'.replace('{code}', code);
39
+ let payload: Payload = {};
40
+
41
+ if (typeof width !== 'undefined') {
42
+ payload['width'] = width;
43
+ }
44
+
45
+ if (typeof height !== 'undefined') {
46
+ payload['height'] = height;
47
+ }
48
+
49
+ if (typeof quality !== 'undefined') {
50
+ payload['quality'] = quality;
51
+ }
52
+
53
+ const uri = new URL(this.client.config.endpoint + path);
54
+ payload['project'] = this.client.config.project;
55
+
56
+
57
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
58
+ uri.searchParams.append(key, value);
59
+ }
60
+ return uri;
61
+ }
62
+
63
+ /**
64
+ * Get Credit Card Icon
65
+ *
66
+ * The credit card endpoint will return you the icon of the credit card
67
+ * provider you need. Use width, height and quality arguments to change the
68
+ * output settings.
69
+ *
70
+ * When one dimension is specified and the other is 0, the image is scaled
71
+ * with preserved aspect ratio. If both dimensions are 0, the API provides an
72
+ * image at source quality. If dimensions are not specified, the default size
73
+ * of image returned is 100x100px.
74
+ *
75
+ *
76
+ * @param {string} code
77
+ * @param {number} width
78
+ * @param {number} height
79
+ * @param {number} quality
80
+ * @throws {AppwriteException}
81
+ * @returns {URL}
82
+ */
83
+ getCreditCard(code: string, width?: number, height?: number, quality?: number): URL {
84
+ if (typeof code === 'undefined') {
85
+ throw new AppwriteException('Missing required parameter: "code"');
86
+ }
87
+
88
+ let path = '/avatars/credit-cards/{code}'.replace('{code}', code);
89
+ let payload: Payload = {};
90
+
91
+ if (typeof width !== 'undefined') {
92
+ payload['width'] = width;
93
+ }
94
+
95
+ if (typeof height !== 'undefined') {
96
+ payload['height'] = height;
97
+ }
98
+
99
+ if (typeof quality !== 'undefined') {
100
+ payload['quality'] = quality;
101
+ }
102
+
103
+ const uri = new URL(this.client.config.endpoint + path);
104
+ payload['project'] = this.client.config.project;
105
+
106
+
107
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
108
+ uri.searchParams.append(key, value);
109
+ }
110
+ return uri;
111
+ }
112
+
113
+ /**
114
+ * Get Favicon
115
+ *
116
+ * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote
117
+ * website URL.
118
+ *
119
+ *
120
+ * @param {string} url
121
+ * @throws {AppwriteException}
122
+ * @returns {URL}
123
+ */
124
+ getFavicon(url: string): URL {
125
+ if (typeof url === 'undefined') {
126
+ throw new AppwriteException('Missing required parameter: "url"');
127
+ }
128
+
129
+ let path = '/avatars/favicon';
130
+ let payload: Payload = {};
131
+
132
+ if (typeof url !== 'undefined') {
133
+ payload['url'] = url;
134
+ }
135
+
136
+ const uri = new URL(this.client.config.endpoint + path);
137
+ payload['project'] = this.client.config.project;
138
+
139
+
140
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
141
+ uri.searchParams.append(key, value);
142
+ }
143
+ return uri;
144
+ }
145
+
146
+ /**
147
+ * Get Country Flag
148
+ *
149
+ * You can use this endpoint to show different country flags icons to your
150
+ * users. The code argument receives the 2 letter country code. Use width,
151
+ * height and quality arguments to change the output settings. Country codes
152
+ * follow the [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) standard.
153
+ *
154
+ * When one dimension is specified and the other is 0, the image is scaled
155
+ * with preserved aspect ratio. If both dimensions are 0, the API provides an
156
+ * image at source quality. If dimensions are not specified, the default size
157
+ * of image returned is 100x100px.
158
+ *
159
+ *
160
+ * @param {string} code
161
+ * @param {number} width
162
+ * @param {number} height
163
+ * @param {number} quality
164
+ * @throws {AppwriteException}
165
+ * @returns {URL}
166
+ */
167
+ getFlag(code: string, width?: number, height?: number, quality?: number): URL {
168
+ if (typeof code === 'undefined') {
169
+ throw new AppwriteException('Missing required parameter: "code"');
170
+ }
171
+
172
+ let path = '/avatars/flags/{code}'.replace('{code}', code);
173
+ let payload: Payload = {};
174
+
175
+ if (typeof width !== 'undefined') {
176
+ payload['width'] = width;
177
+ }
178
+
179
+ if (typeof height !== 'undefined') {
180
+ payload['height'] = height;
181
+ }
182
+
183
+ if (typeof quality !== 'undefined') {
184
+ payload['quality'] = quality;
185
+ }
186
+
187
+ const uri = new URL(this.client.config.endpoint + path);
188
+ payload['project'] = this.client.config.project;
189
+
190
+
191
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
192
+ uri.searchParams.append(key, value);
193
+ }
194
+ return uri;
195
+ }
196
+
197
+ /**
198
+ * Get Image from URL
199
+ *
200
+ * Use this endpoint to fetch a remote image URL and crop it to any image size
201
+ * you want. This endpoint is very useful if you need to crop and display
202
+ * remote images in your app or in case you want to make sure a 3rd party
203
+ * image is properly served using a TLS protocol.
204
+ *
205
+ * When one dimension is specified and the other is 0, the image is scaled
206
+ * with preserved aspect ratio. If both dimensions are 0, the API provides an
207
+ * image at source quality. If dimensions are not specified, the default size
208
+ * of image returned is 400x400px.
209
+ *
210
+ *
211
+ * @param {string} url
212
+ * @param {number} width
213
+ * @param {number} height
214
+ * @throws {AppwriteException}
215
+ * @returns {URL}
216
+ */
217
+ getImage(url: string, width?: number, height?: number): URL {
218
+ if (typeof url === 'undefined') {
219
+ throw new AppwriteException('Missing required parameter: "url"');
220
+ }
221
+
222
+ let path = '/avatars/image';
223
+ let payload: Payload = {};
224
+
225
+ if (typeof url !== 'undefined') {
226
+ payload['url'] = url;
227
+ }
228
+
229
+ if (typeof width !== 'undefined') {
230
+ payload['width'] = width;
231
+ }
232
+
233
+ if (typeof height !== 'undefined') {
234
+ payload['height'] = height;
235
+ }
236
+
237
+ const uri = new URL(this.client.config.endpoint + path);
238
+ payload['project'] = this.client.config.project;
239
+
240
+
241
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
242
+ uri.searchParams.append(key, value);
243
+ }
244
+ return uri;
245
+ }
246
+
247
+ /**
248
+ * Get User Initials
249
+ *
250
+ * Use this endpoint to show your user initials avatar icon on your website or
251
+ * app. By default, this route will try to print your logged-in user name or
252
+ * email initials. You can also overwrite the user name if you pass the 'name'
253
+ * parameter. If no name is given and no user is logged, an empty avatar will
254
+ * be returned.
255
+ *
256
+ * You can use the color and background params to change the avatar colors. By
257
+ * default, a random theme will be selected. The random theme will persist for
258
+ * the user's initials when reloading the same theme will always return for
259
+ * the same initials.
260
+ *
261
+ * When one dimension is specified and the other is 0, the image is scaled
262
+ * with preserved aspect ratio. If both dimensions are 0, the API provides an
263
+ * image at source quality. If dimensions are not specified, the default size
264
+ * of image returned is 100x100px.
265
+ *
266
+ *
267
+ * @param {string} name
268
+ * @param {number} width
269
+ * @param {number} height
270
+ * @param {string} background
271
+ * @throws {AppwriteException}
272
+ * @returns {URL}
273
+ */
274
+ getInitials(name?: string, width?: number, height?: number, background?: string): URL {
275
+ let path = '/avatars/initials';
276
+ let payload: Payload = {};
277
+
278
+ if (typeof name !== 'undefined') {
279
+ payload['name'] = name;
280
+ }
281
+
282
+ if (typeof width !== 'undefined') {
283
+ payload['width'] = width;
284
+ }
285
+
286
+ if (typeof height !== 'undefined') {
287
+ payload['height'] = height;
288
+ }
289
+
290
+ if (typeof background !== 'undefined') {
291
+ payload['background'] = background;
292
+ }
293
+
294
+ const uri = new URL(this.client.config.endpoint + path);
295
+ payload['project'] = this.client.config.project;
296
+
297
+
298
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
299
+ uri.searchParams.append(key, value);
300
+ }
301
+ return uri;
302
+ }
303
+
304
+ /**
305
+ * Get QR Code
306
+ *
307
+ * Converts a given plain text to a QR code image. You can use the query
308
+ * parameters to change the size and style of the resulting image.
309
+ *
310
+ *
311
+ * @param {string} text
312
+ * @param {number} size
313
+ * @param {number} margin
314
+ * @param {boolean} download
315
+ * @throws {AppwriteException}
316
+ * @returns {URL}
317
+ */
318
+ getQR(text: string, size?: number, margin?: number, download?: boolean): URL {
319
+ if (typeof text === 'undefined') {
320
+ throw new AppwriteException('Missing required parameter: "text"');
321
+ }
322
+
323
+ let path = '/avatars/qr';
324
+ let payload: Payload = {};
325
+
326
+ if (typeof text !== 'undefined') {
327
+ payload['text'] = text;
328
+ }
329
+
330
+ if (typeof size !== 'undefined') {
331
+ payload['size'] = size;
332
+ }
333
+
334
+ if (typeof margin !== 'undefined') {
335
+ payload['margin'] = margin;
336
+ }
337
+
338
+ if (typeof download !== 'undefined') {
339
+ payload['download'] = download;
340
+ }
341
+
342
+ const uri = new URL(this.client.config.endpoint + path);
343
+ payload['project'] = this.client.config.project;
344
+
345
+
346
+ for (const [key, value] of Object.entries(Service.flatten(payload))) {
347
+ uri.searchParams.append(key, value);
348
+ }
349
+ return uri;
350
+ }
351
+ };