appwrite 5.0.0 → 7.0.0.pre.RC2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +32 -11
  3. data/lib/appwrite/id.rb +11 -0
  4. data/lib/appwrite/input_file.rb +33 -0
  5. data/lib/appwrite/models/account.rb +82 -0
  6. data/lib/appwrite/models/algo_argon2.rb +37 -0
  7. data/lib/appwrite/models/algo_bcrypt.rb +22 -0
  8. data/lib/appwrite/models/algo_md5.rb +22 -0
  9. data/lib/appwrite/models/algo_phpass.rb +22 -0
  10. data/lib/appwrite/models/algo_scrypt.rb +42 -0
  11. data/lib/appwrite/models/algo_scrypt_modified.rb +37 -0
  12. data/lib/appwrite/models/algo_sha.rb +22 -0
  13. data/lib/appwrite/models/attribute_datetime.rb +57 -0
  14. data/lib/appwrite/models/bucket.rb +25 -25
  15. data/lib/appwrite/models/collection.rb +25 -15
  16. data/lib/appwrite/models/database.rb +42 -0
  17. data/lib/appwrite/models/database_list.rb +32 -0
  18. data/lib/appwrite/models/deployment.rb +10 -5
  19. data/lib/appwrite/models/document.rb +15 -10
  20. data/lib/appwrite/models/execution.rb +20 -10
  21. data/lib/appwrite/models/file.rb +15 -15
  22. data/lib/appwrite/models/function.rb +12 -12
  23. data/lib/appwrite/models/index.rb +1 -1
  24. data/lib/appwrite/models/membership.rb +10 -0
  25. data/lib/appwrite/models/session.rb +5 -0
  26. data/lib/appwrite/models/team.rb +10 -5
  27. data/lib/appwrite/models/token.rb +5 -0
  28. data/lib/appwrite/models/user.rb +35 -0
  29. data/lib/appwrite/models/variable.rb +52 -0
  30. data/lib/appwrite/models/variable_list.rb +32 -0
  31. data/lib/appwrite/permission.rb +21 -0
  32. data/lib/appwrite/query.rb +43 -14
  33. data/lib/appwrite/role.rb +31 -0
  34. data/lib/appwrite/services/account.rb +250 -103
  35. data/lib/appwrite/services/avatars.rb +73 -56
  36. data/lib/appwrite/services/databases.rb +1425 -0
  37. data/lib/appwrite/services/functions.rb +381 -176
  38. data/lib/appwrite/services/health.rb +34 -10
  39. data/lib/appwrite/services/locale.rb +25 -7
  40. data/lib/appwrite/services/storage.rb +195 -193
  41. data/lib/appwrite/services/teams.rb +138 -128
  42. data/lib/appwrite/services/users.rb +610 -130
  43. data/lib/appwrite.rb +19 -2
  44. metadata +22 -6
  45. data/lib/appwrite/file.rb +0 -17
  46. data/lib/appwrite/services/database.rb +0 -1047
@@ -3,29 +3,26 @@
3
3
  module Appwrite
4
4
  class Users < Service
5
5
 
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
6
10
  # Get a list of all the project's users. You can use the query params to
7
11
  # filter your results.
8
12
  #
9
- # @param [string] search Search term to filter your list results. Max length: 256 chars.
10
- # @param [number] limit Maximum number of users to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.
11
- # @param [number] offset Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)
12
- # @param [string] cursor ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https://appwrite.io/docs/pagination)
13
- # @param [string] cursor_direction Direction of the cursor.
14
- # @param [string] order_type Order result by ASC or DESC order.
13
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification
14
+ # @param [String] search Search term to filter your list results. Max length: 256 chars.
15
15
  #
16
16
  # @return [UserList]
17
- def list(search: nil, limit: nil, offset: nil, cursor: nil, cursor_direction: nil, order_type: nil)
17
+ def list(queries: nil, search: nil)
18
+
18
19
  path = '/users'
19
20
 
20
21
  params = {
22
+ queries: queries,
21
23
  search: search,
22
- limit: limit,
23
- offset: offset,
24
- cursor: cursor,
25
- cursorDirection: cursor_direction,
26
- orderType: order_type,
27
24
  }
28
-
25
+
29
26
  headers = {
30
27
  "content-type": 'application/json',
31
28
  }
@@ -39,15 +36,71 @@ module Appwrite
39
36
  )
40
37
  end
41
38
 
39
+
42
40
  # Create a new user.
43
41
  #
44
- # @param [string] user_id User ID. Choose your own unique ID or pass the string &quot;unique()&quot; to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can&#039;t start with a special char. Max length is 36 chars.
45
- # @param [string] email User email.
46
- # @param [string] password User password. Must be at least 8 chars.
47
- # @param [string] name User name. Max length: 128 chars.
42
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
43
+ # @param [String] email User email.
44
+ # @param [String] phone Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.
45
+ # @param [String] password Plain text user password. Must be at least 8 chars.
46
+ # @param [String] name User name. Max length: 128 chars.
48
47
  #
49
48
  # @return [User]
50
- def create(user_id:, email:, password:, name: nil)
49
+ def create(user_id:, email: nil, phone: nil, password: nil, name: nil)
50
+
51
+ path = '/users'
52
+
53
+ params = {
54
+ userId: user_id,
55
+ email: email,
56
+ phone: phone,
57
+ password: password,
58
+ name: name,
59
+ }
60
+
61
+ headers = {
62
+ "content-type": 'application/json',
63
+ }
64
+ if user_id.nil?
65
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
66
+ end
67
+
68
+
69
+ @client.call(
70
+ method: 'POST',
71
+ path: path,
72
+ headers: headers,
73
+ params: params,
74
+ response_type: Models::User
75
+ )
76
+ end
77
+
78
+
79
+ # Create a new user. Password provided must be hashed with the
80
+ # [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST
81
+ # /users](/docs/server/users#usersCreate) endpoint to create users with a
82
+ # plain text password.
83
+ #
84
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
85
+ # @param [String] email User email.
86
+ # @param [String] password User password hashed using Argon2.
87
+ # @param [String] name User name. Max length: 128 chars.
88
+ #
89
+ # @return [User]
90
+ def create_argon2_user(user_id:, email:, password:, name: nil)
91
+
92
+ path = '/users/argon2'
93
+
94
+ params = {
95
+ userId: user_id,
96
+ email: email,
97
+ password: password,
98
+ name: name,
99
+ }
100
+
101
+ headers = {
102
+ "content-type": 'application/json',
103
+ }
51
104
  if user_id.nil?
52
105
  raise Appwrite::Exception.new('Missing required parameter: "userId"')
53
106
  end
@@ -60,7 +113,31 @@ module Appwrite
60
113
  raise Appwrite::Exception.new('Missing required parameter: "password"')
61
114
  end
62
115
 
63
- path = '/users'
116
+
117
+ @client.call(
118
+ method: 'POST',
119
+ path: path,
120
+ headers: headers,
121
+ params: params,
122
+ response_type: Models::User
123
+ )
124
+ end
125
+
126
+
127
+ # Create a new user. Password provided must be hashed with the
128
+ # [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST
129
+ # /users](/docs/server/users#usersCreate) endpoint to create users with a
130
+ # plain text password.
131
+ #
132
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
133
+ # @param [String] email User email.
134
+ # @param [String] password User password hashed using Bcrypt.
135
+ # @param [String] name User name. Max length: 128 chars.
136
+ #
137
+ # @return [User]
138
+ def create_bcrypt_user(user_id:, email:, password:, name: nil)
139
+
140
+ path = '/users/bcrypt'
64
141
 
65
142
  params = {
66
143
  userId: user_id,
@@ -68,10 +145,70 @@ module Appwrite
68
145
  password: password,
69
146
  name: name,
70
147
  }
148
+
149
+ headers = {
150
+ "content-type": 'application/json',
151
+ }
152
+ if user_id.nil?
153
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
154
+ end
155
+
156
+ if email.nil?
157
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
158
+ end
71
159
 
160
+ if password.nil?
161
+ raise Appwrite::Exception.new('Missing required parameter: "password"')
162
+ end
163
+
164
+
165
+ @client.call(
166
+ method: 'POST',
167
+ path: path,
168
+ headers: headers,
169
+ params: params,
170
+ response_type: Models::User
171
+ )
172
+ end
173
+
174
+
175
+ # Create a new user. Password provided must be hashed with the
176
+ # [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST
177
+ # /users](/docs/server/users#usersCreate) endpoint to create users with a
178
+ # plain text password.
179
+ #
180
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
181
+ # @param [String] email User email.
182
+ # @param [String] password User password hashed using MD5.
183
+ # @param [String] name User name. Max length: 128 chars.
184
+ #
185
+ # @return [User]
186
+ def create_md5_user(user_id:, email:, password:, name: nil)
187
+
188
+ path = '/users/md5'
189
+
190
+ params = {
191
+ userId: user_id,
192
+ email: email,
193
+ password: password,
194
+ name: name,
195
+ }
196
+
72
197
  headers = {
73
198
  "content-type": 'application/json',
74
199
  }
200
+ if user_id.nil?
201
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
202
+ end
203
+
204
+ if email.nil?
205
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
206
+ end
207
+
208
+ if password.nil?
209
+ raise Appwrite::Exception.new('Missing required parameter: "password"')
210
+ end
211
+
75
212
 
76
213
  @client.call(
77
214
  method: 'POST',
@@ -82,25 +219,269 @@ module Appwrite
82
219
  )
83
220
  end
84
221
 
85
- # Get a user by its unique ID.
222
+
223
+ # Create a new user. Password provided must be hashed with the
224
+ # [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST
225
+ # /users](/docs/server/users#usersCreate) endpoint to create users with a
226
+ # plain text password.
86
227
  #
87
- # @param [string] user_id User ID.
228
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
229
+ # @param [String] email User email.
230
+ # @param [String] password User password hashed using PHPass.
231
+ # @param [String] name User name. Max length: 128 chars.
88
232
  #
89
233
  # @return [User]
90
- def get(user_id:)
234
+ def create_ph_pass_user(user_id:, email:, password:, name: nil)
235
+
236
+ path = '/users/phpass'
237
+
238
+ params = {
239
+ userId: user_id,
240
+ email: email,
241
+ password: password,
242
+ name: name,
243
+ }
244
+
245
+ headers = {
246
+ "content-type": 'application/json',
247
+ }
91
248
  if user_id.nil?
92
249
  raise Appwrite::Exception.new('Missing required parameter: "userId"')
93
250
  end
94
251
 
95
- path = '/users/{userId}'
96
- .gsub('{userId}', user_id)
252
+ if email.nil?
253
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
254
+ end
255
+
256
+ if password.nil?
257
+ raise Appwrite::Exception.new('Missing required parameter: "password"')
258
+ end
259
+
260
+
261
+ @client.call(
262
+ method: 'POST',
263
+ path: path,
264
+ headers: headers,
265
+ params: params,
266
+ response_type: Models::User
267
+ )
268
+ end
269
+
270
+
271
+ # Create a new user. Password provided must be hashed with the
272
+ # [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST
273
+ # /users](/docs/server/users#usersCreate) endpoint to create users with a
274
+ # plain text password.
275
+ #
276
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
277
+ # @param [String] email User email.
278
+ # @param [String] password User password hashed using Scrypt.
279
+ # @param [String] password_salt Optional salt used to hash password.
280
+ # @param [Integer] password_cpu Optional CPU cost used to hash password.
281
+ # @param [Integer] password_memory Optional memory cost used to hash password.
282
+ # @param [Integer] password_parallel Optional parallelization cost used to hash password.
283
+ # @param [Integer] password_length Optional hash length used to hash password.
284
+ # @param [String] name User name. Max length: 128 chars.
285
+ #
286
+ # @return [User]
287
+ def create_scrypt_user(user_id:, email:, password:, password_salt:, password_cpu:, password_memory:, password_parallel:, password_length:, name: nil)
288
+
289
+ path = '/users/scrypt'
97
290
 
98
291
  params = {
292
+ userId: user_id,
293
+ email: email,
294
+ password: password,
295
+ passwordSalt: password_salt,
296
+ passwordCpu: password_cpu,
297
+ passwordMemory: password_memory,
298
+ passwordParallel: password_parallel,
299
+ passwordLength: password_length,
300
+ name: name,
99
301
  }
302
+
303
+ headers = {
304
+ "content-type": 'application/json',
305
+ }
306
+ if user_id.nil?
307
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
308
+ end
309
+
310
+ if email.nil?
311
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
312
+ end
313
+
314
+ if password.nil?
315
+ raise Appwrite::Exception.new('Missing required parameter: "password"')
316
+ end
317
+
318
+ if password_salt.nil?
319
+ raise Appwrite::Exception.new('Missing required parameter: "passwordSalt"')
320
+ end
321
+
322
+ if password_cpu.nil?
323
+ raise Appwrite::Exception.new('Missing required parameter: "passwordCpu"')
324
+ end
325
+
326
+ if password_memory.nil?
327
+ raise Appwrite::Exception.new('Missing required parameter: "passwordMemory"')
328
+ end
329
+
330
+ if password_parallel.nil?
331
+ raise Appwrite::Exception.new('Missing required parameter: "passwordParallel"')
332
+ end
333
+
334
+ if password_length.nil?
335
+ raise Appwrite::Exception.new('Missing required parameter: "passwordLength"')
336
+ end
337
+
338
+
339
+ @client.call(
340
+ method: 'POST',
341
+ path: path,
342
+ headers: headers,
343
+ params: params,
344
+ response_type: Models::User
345
+ )
346
+ end
347
+
348
+
349
+ # Create a new user. Password provided must be hashed with the [Scrypt
350
+ # Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc)
351
+ # algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint
352
+ # to create users with a plain text password.
353
+ #
354
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
355
+ # @param [String] email User email.
356
+ # @param [String] password User password hashed using Scrypt Modified.
357
+ # @param [String] password_salt Salt used to hash password.
358
+ # @param [String] password_salt_separator Salt separator used to hash password.
359
+ # @param [String] password_signer_key Signer key used to hash password.
360
+ # @param [String] name User name. Max length: 128 chars.
361
+ #
362
+ # @return [User]
363
+ def create_scrypt_modified_user(user_id:, email:, password:, password_salt:, password_salt_separator:, password_signer_key:, name: nil)
364
+
365
+ path = '/users/scrypt-modified'
100
366
 
367
+ params = {
368
+ userId: user_id,
369
+ email: email,
370
+ password: password,
371
+ passwordSalt: password_salt,
372
+ passwordSaltSeparator: password_salt_separator,
373
+ passwordSignerKey: password_signer_key,
374
+ name: name,
375
+ }
376
+
101
377
  headers = {
102
378
  "content-type": 'application/json',
103
379
  }
380
+ if user_id.nil?
381
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
382
+ end
383
+
384
+ if email.nil?
385
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
386
+ end
387
+
388
+ if password.nil?
389
+ raise Appwrite::Exception.new('Missing required parameter: "password"')
390
+ end
391
+
392
+ if password_salt.nil?
393
+ raise Appwrite::Exception.new('Missing required parameter: "passwordSalt"')
394
+ end
395
+
396
+ if password_salt_separator.nil?
397
+ raise Appwrite::Exception.new('Missing required parameter: "passwordSaltSeparator"')
398
+ end
399
+
400
+ if password_signer_key.nil?
401
+ raise Appwrite::Exception.new('Missing required parameter: "passwordSignerKey"')
402
+ end
403
+
404
+
405
+ @client.call(
406
+ method: 'POST',
407
+ path: path,
408
+ headers: headers,
409
+ params: params,
410
+ response_type: Models::User
411
+ )
412
+ end
413
+
414
+
415
+ # Create a new user. Password provided must be hashed with the
416
+ # [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use
417
+ # the [POST /users](/docs/server/users#usersCreate) endpoint to create users
418
+ # with a plain text password.
419
+ #
420
+ # @param [String] user_id User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
421
+ # @param [String] email User email.
422
+ # @param [String] password User password hashed using SHA.
423
+ # @param [String] password_version Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512/224', 'sha512/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'
424
+ # @param [String] name User name. Max length: 128 chars.
425
+ #
426
+ # @return [User]
427
+ def create_sha_user(user_id:, email:, password:, password_version: nil, name: nil)
428
+
429
+ path = '/users/sha'
430
+
431
+ params = {
432
+ userId: user_id,
433
+ email: email,
434
+ password: password,
435
+ passwordVersion: password_version,
436
+ name: name,
437
+ }
438
+
439
+ headers = {
440
+ "content-type": 'application/json',
441
+ }
442
+ if user_id.nil?
443
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
444
+ end
445
+
446
+ if email.nil?
447
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
448
+ end
449
+
450
+ if password.nil?
451
+ raise Appwrite::Exception.new('Missing required parameter: "password"')
452
+ end
453
+
454
+
455
+ @client.call(
456
+ method: 'POST',
457
+ path: path,
458
+ headers: headers,
459
+ params: params,
460
+ response_type: Models::User
461
+ )
462
+ end
463
+
464
+
465
+ # Get a user by its unique ID.
466
+ #
467
+ # @param [String] user_id User ID.
468
+ #
469
+ # @return [User]
470
+ def get(user_id:)
471
+
472
+ path = '/users/{userId}'
473
+
474
+ params = {
475
+ }
476
+
477
+ headers = {
478
+ "content-type": 'application/json',
479
+ }
480
+ if user_id.nil?
481
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
482
+ end
483
+
484
+ .gsub('{userId}', user_id)
104
485
 
105
486
  @client.call(
106
487
  method: 'GET',
@@ -111,29 +492,31 @@ module Appwrite
111
492
  )
112
493
  end
113
494
 
495
+
114
496
  # Delete a user by its unique ID, thereby releasing it's ID. Since ID is
115
497
  # released and can be reused, all user-related resources like documents or
116
498
  # storage files should be deleted before user deletion. If you want to keep
117
499
  # ID reserved, use the [updateStatus](/docs/server/users#usersUpdateStatus)
118
500
  # endpoint instead.
119
501
  #
120
- # @param [string] user_id User ID.
502
+ # @param [String] user_id User ID.
121
503
  #
122
504
  # @return []
123
505
  def delete(user_id:)
124
- if user_id.nil?
125
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
126
- end
127
506
 
128
507
  path = '/users/{userId}'
129
- .gsub('{userId}', user_id)
130
508
 
131
509
  params = {
132
510
  }
133
-
511
+
134
512
  headers = {
135
513
  "content-type": 'application/json',
136
514
  }
515
+ if user_id.nil?
516
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
517
+ end
518
+
519
+ .gsub('{userId}', user_id)
137
520
 
138
521
  @client.call(
139
522
  method: 'DELETE',
@@ -143,31 +526,33 @@ module Appwrite
143
526
  )
144
527
  end
145
528
 
529
+
146
530
  # Update the user email by its unique ID.
147
531
  #
148
- # @param [string] user_id User ID.
149
- # @param [string] email User email.
532
+ # @param [String] user_id User ID.
533
+ # @param [String] email User email.
150
534
  #
151
535
  # @return [User]
152
536
  def update_email(user_id:, email:)
153
- if user_id.nil?
154
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
155
- end
156
-
157
- if email.nil?
158
- raise Appwrite::Exception.new('Missing required parameter: "email"')
159
- end
160
537
 
161
538
  path = '/users/{userId}/email'
162
- .gsub('{userId}', user_id)
163
539
 
164
540
  params = {
165
541
  email: email,
166
542
  }
167
-
543
+
168
544
  headers = {
169
545
  "content-type": 'application/json',
170
546
  }
547
+ if user_id.nil?
548
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
549
+ end
550
+
551
+ if email.nil?
552
+ raise Appwrite::Exception.new('Missing required parameter: "email"')
553
+ end
554
+
555
+ .gsub('{userId}', user_id)
171
556
 
172
557
  @client.call(
173
558
  method: 'PATCH',
@@ -178,29 +563,29 @@ module Appwrite
178
563
  )
179
564
  end
180
565
 
566
+
181
567
  # Get the user activity logs list by its unique ID.
182
568
  #
183
- # @param [string] user_id User ID.
184
- # @param [number] limit Maximum number of logs to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.
185
- # @param [number] offset Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)
569
+ # @param [String] user_id User ID.
570
+ # @param [Array] queries Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Only supported methods are limit and offset
186
571
  #
187
572
  # @return [LogList]
188
- def get_logs(user_id:, limit: nil, offset: nil)
189
- if user_id.nil?
190
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
191
- end
573
+ def get_logs(user_id:, queries: nil)
192
574
 
193
575
  path = '/users/{userId}/logs'
194
- .gsub('{userId}', user_id)
195
576
 
196
577
  params = {
197
- limit: limit,
198
- offset: offset,
578
+ queries: queries,
199
579
  }
200
-
580
+
201
581
  headers = {
202
582
  "content-type": 'application/json',
203
583
  }
584
+ if user_id.nil?
585
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
586
+ end
587
+
588
+ .gsub('{userId}', user_id)
204
589
 
205
590
  @client.call(
206
591
  method: 'GET',
@@ -211,25 +596,27 @@ module Appwrite
211
596
  )
212
597
  end
213
598
 
599
+
214
600
  # Get the user membership list by its unique ID.
215
601
  #
216
- # @param [string] user_id User ID.
602
+ # @param [String] user_id User ID.
217
603
  #
218
604
  # @return [MembershipList]
219
605
  def get_memberships(user_id:)
220
- if user_id.nil?
221
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
222
- end
223
606
 
224
607
  path = '/users/{userId}/memberships'
225
- .gsub('{userId}', user_id)
226
608
 
227
609
  params = {
228
610
  }
229
-
611
+
230
612
  headers = {
231
613
  "content-type": 'application/json',
232
614
  }
615
+ if user_id.nil?
616
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
617
+ end
618
+
619
+ .gsub('{userId}', user_id)
233
620
 
234
621
  @client.call(
235
622
  method: 'GET',
@@ -240,31 +627,33 @@ module Appwrite
240
627
  )
241
628
  end
242
629
 
630
+
243
631
  # Update the user name by its unique ID.
244
632
  #
245
- # @param [string] user_id User ID.
246
- # @param [string] name User name. Max length: 128 chars.
633
+ # @param [String] user_id User ID.
634
+ # @param [String] name User name. Max length: 128 chars.
247
635
  #
248
636
  # @return [User]
249
637
  def update_name(user_id:, name:)
250
- if user_id.nil?
251
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
252
- end
253
-
254
- if name.nil?
255
- raise Appwrite::Exception.new('Missing required parameter: "name"')
256
- end
257
638
 
258
639
  path = '/users/{userId}/name'
259
- .gsub('{userId}', user_id)
260
640
 
261
641
  params = {
262
642
  name: name,
263
643
  }
264
-
644
+
265
645
  headers = {
266
646
  "content-type": 'application/json',
267
647
  }
648
+ if user_id.nil?
649
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
650
+ end
651
+
652
+ if name.nil?
653
+ raise Appwrite::Exception.new('Missing required parameter: "name"')
654
+ end
655
+
656
+ .gsub('{userId}', user_id)
268
657
 
269
658
  @client.call(
270
659
  method: 'PATCH',
@@ -275,13 +664,24 @@ module Appwrite
275
664
  )
276
665
  end
277
666
 
667
+
278
668
  # Update the user password by its unique ID.
279
669
  #
280
- # @param [string] user_id User ID.
281
- # @param [string] password New user password. Must be at least 8 chars.
670
+ # @param [String] user_id User ID.
671
+ # @param [String] password New user password. Must be at least 8 chars.
282
672
  #
283
673
  # @return [User]
284
674
  def update_password(user_id:, password:)
675
+
676
+ path = '/users/{userId}/password'
677
+
678
+ params = {
679
+ password: password,
680
+ }
681
+
682
+ headers = {
683
+ "content-type": 'application/json',
684
+ }
285
685
  if user_id.nil?
286
686
  raise Appwrite::Exception.new('Missing required parameter: "userId"')
287
687
  end
@@ -290,16 +690,44 @@ module Appwrite
290
690
  raise Appwrite::Exception.new('Missing required parameter: "password"')
291
691
  end
292
692
 
293
- path = '/users/{userId}/password'
294
693
  .gsub('{userId}', user_id)
295
694
 
695
+ @client.call(
696
+ method: 'PATCH',
697
+ path: path,
698
+ headers: headers,
699
+ params: params,
700
+ response_type: Models::User
701
+ )
702
+ end
703
+
704
+
705
+ # Update the user phone by its unique ID.
706
+ #
707
+ # @param [String] user_id User ID.
708
+ # @param [String] number User phone number.
709
+ #
710
+ # @return [User]
711
+ def update_phone(user_id:, number:)
712
+
713
+ path = '/users/{userId}/phone'
714
+
296
715
  params = {
297
- password: password,
716
+ number: number,
298
717
  }
299
-
718
+
300
719
  headers = {
301
720
  "content-type": 'application/json',
302
721
  }
722
+ if user_id.nil?
723
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
724
+ end
725
+
726
+ if number.nil?
727
+ raise Appwrite::Exception.new('Missing required parameter: "number"')
728
+ end
729
+
730
+ .gsub('{userId}', user_id)
303
731
 
304
732
  @client.call(
305
733
  method: 'PATCH',
@@ -310,25 +738,27 @@ module Appwrite
310
738
  )
311
739
  end
312
740
 
741
+
313
742
  # Get the user preferences by its unique ID.
314
743
  #
315
- # @param [string] user_id User ID.
744
+ # @param [String] user_id User ID.
316
745
  #
317
746
  # @return [Preferences]
318
747
  def get_prefs(user_id:)
319
- if user_id.nil?
320
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
321
- end
322
748
 
323
749
  path = '/users/{userId}/prefs'
324
- .gsub('{userId}', user_id)
325
750
 
326
751
  params = {
327
752
  }
328
-
753
+
329
754
  headers = {
330
755
  "content-type": 'application/json',
331
756
  }
757
+ if user_id.nil?
758
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
759
+ end
760
+
761
+ .gsub('{userId}', user_id)
332
762
 
333
763
  @client.call(
334
764
  method: 'GET',
@@ -339,33 +769,35 @@ module Appwrite
339
769
  )
340
770
  end
341
771
 
772
+
342
773
  # Update the user preferences by its unique ID. The object you pass is stored
343
774
  # as is, and replaces any previous value. The maximum allowed prefs size is
344
775
  # 64kB and throws error if exceeded.
345
776
  #
346
- # @param [string] user_id User ID.
347
- # @param [object] prefs Prefs key-value JSON object.
777
+ # @param [String] user_id User ID.
778
+ # @param [Hash] prefs Prefs key-value JSON object.
348
779
  #
349
780
  # @return [Preferences]
350
781
  def update_prefs(user_id:, prefs:)
351
- if user_id.nil?
352
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
353
- end
354
-
355
- if prefs.nil?
356
- raise Appwrite::Exception.new('Missing required parameter: "prefs"')
357
- end
358
782
 
359
783
  path = '/users/{userId}/prefs'
360
- .gsub('{userId}', user_id)
361
784
 
362
785
  params = {
363
786
  prefs: prefs,
364
787
  }
365
-
788
+
366
789
  headers = {
367
790
  "content-type": 'application/json',
368
791
  }
792
+ if user_id.nil?
793
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
794
+ end
795
+
796
+ if prefs.nil?
797
+ raise Appwrite::Exception.new('Missing required parameter: "prefs"')
798
+ end
799
+
800
+ .gsub('{userId}', user_id)
369
801
 
370
802
  @client.call(
371
803
  method: 'PATCH',
@@ -376,25 +808,27 @@ module Appwrite
376
808
  )
377
809
  end
378
810
 
811
+
379
812
  # Get the user sessions list by its unique ID.
380
813
  #
381
- # @param [string] user_id User ID.
814
+ # @param [String] user_id User ID.
382
815
  #
383
816
  # @return [SessionList]
384
817
  def get_sessions(user_id:)
385
- if user_id.nil?
386
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
387
- end
388
818
 
389
819
  path = '/users/{userId}/sessions'
390
- .gsub('{userId}', user_id)
391
820
 
392
821
  params = {
393
822
  }
394
-
823
+
395
824
  headers = {
396
825
  "content-type": 'application/json',
397
826
  }
827
+ if user_id.nil?
828
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
829
+ end
830
+
831
+ .gsub('{userId}', user_id)
398
832
 
399
833
  @client.call(
400
834
  method: 'GET',
@@ -405,25 +839,27 @@ module Appwrite
405
839
  )
406
840
  end
407
841
 
842
+
408
843
  # Delete all user's sessions by using the user's unique ID.
409
844
  #
410
- # @param [string] user_id User ID.
845
+ # @param [String] user_id User ID.
411
846
  #
412
847
  # @return []
413
848
  def delete_sessions(user_id:)
414
- if user_id.nil?
415
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
416
- end
417
849
 
418
850
  path = '/users/{userId}/sessions'
419
- .gsub('{userId}', user_id)
420
851
 
421
852
  params = {
422
853
  }
423
-
854
+
424
855
  headers = {
425
856
  "content-type": 'application/json',
426
857
  }
858
+ if user_id.nil?
859
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
860
+ end
861
+
862
+ .gsub('{userId}', user_id)
427
863
 
428
864
  @client.call(
429
865
  method: 'DELETE',
@@ -433,13 +869,23 @@ module Appwrite
433
869
  )
434
870
  end
435
871
 
872
+
436
873
  # Delete a user sessions by its unique ID.
437
874
  #
438
- # @param [string] user_id User ID.
439
- # @param [string] session_id Session ID.
875
+ # @param [String] user_id User ID.
876
+ # @param [String] session_id Session ID.
440
877
  #
441
878
  # @return []
442
879
  def delete_session(user_id:, session_id:)
880
+
881
+ path = '/users/{userId}/sessions/{sessionId}'
882
+
883
+ params = {
884
+ }
885
+
886
+ headers = {
887
+ "content-type": 'application/json',
888
+ }
443
889
  if user_id.nil?
444
890
  raise Appwrite::Exception.new('Missing required parameter: "userId"')
445
891
  end
@@ -448,17 +894,9 @@ module Appwrite
448
894
  raise Appwrite::Exception.new('Missing required parameter: "sessionId"')
449
895
  end
450
896
 
451
- path = '/users/{userId}/sessions/{sessionId}'
452
897
  .gsub('{userId}', user_id)
453
898
  .gsub('{sessionId}', session_id)
454
899
 
455
- params = {
456
- }
457
-
458
- headers = {
459
- "content-type": 'application/json',
460
- }
461
-
462
900
  @client.call(
463
901
  method: 'DELETE',
464
902
  path: path,
@@ -467,32 +905,34 @@ module Appwrite
467
905
  )
468
906
  end
469
907
 
908
+
470
909
  # Update the user status by its unique ID. Use this endpoint as an
471
910
  # alternative to deleting a user if you want to keep user's ID reserved.
472
911
  #
473
- # @param [string] user_id User ID.
474
- # @param [boolean] status User Status. To activate the user pass `true` and to block the user pass `false`.
912
+ # @param [String] user_id User ID.
913
+ # @param [] status User Status. To activate the user pass `true` and to block the user pass `false`.
475
914
  #
476
915
  # @return [User]
477
916
  def update_status(user_id:, status:)
478
- if user_id.nil?
479
- raise Appwrite::Exception.new('Missing required parameter: "userId"')
480
- end
481
-
482
- if status.nil?
483
- raise Appwrite::Exception.new('Missing required parameter: "status"')
484
- end
485
917
 
486
918
  path = '/users/{userId}/status'
487
- .gsub('{userId}', user_id)
488
919
 
489
920
  params = {
490
921
  status: status,
491
922
  }
492
-
923
+
493
924
  headers = {
494
925
  "content-type": 'application/json',
495
926
  }
927
+ if user_id.nil?
928
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
929
+ end
930
+
931
+ if status.nil?
932
+ raise Appwrite::Exception.new('Missing required parameter: "status"')
933
+ end
934
+
935
+ .gsub('{userId}', user_id)
496
936
 
497
937
  @client.call(
498
938
  method: 'PATCH',
@@ -503,13 +943,24 @@ module Appwrite
503
943
  )
504
944
  end
505
945
 
946
+
506
947
  # Update the user email verification status by its unique ID.
507
948
  #
508
- # @param [string] user_id User ID.
509
- # @param [boolean] email_verification User email verification status.
949
+ # @param [String] user_id User ID.
950
+ # @param [] email_verification User email verification status.
510
951
  #
511
952
  # @return [User]
512
- def update_verification(user_id:, email_verification:)
953
+ def update_email_verification(user_id:, email_verification:)
954
+
955
+ path = '/users/{userId}/verification'
956
+
957
+ params = {
958
+ emailVerification: email_verification,
959
+ }
960
+
961
+ headers = {
962
+ "content-type": 'application/json',
963
+ }
513
964
  if user_id.nil?
514
965
  raise Appwrite::Exception.new('Missing required parameter: "userId"')
515
966
  end
@@ -518,16 +969,44 @@ module Appwrite
518
969
  raise Appwrite::Exception.new('Missing required parameter: "emailVerification"')
519
970
  end
520
971
 
521
- path = '/users/{userId}/verification'
522
972
  .gsub('{userId}', user_id)
523
973
 
974
+ @client.call(
975
+ method: 'PATCH',
976
+ path: path,
977
+ headers: headers,
978
+ params: params,
979
+ response_type: Models::User
980
+ )
981
+ end
982
+
983
+
984
+ # Update the user phone verification status by its unique ID.
985
+ #
986
+ # @param [String] user_id User ID.
987
+ # @param [] phone_verification User phone verification status.
988
+ #
989
+ # @return [User]
990
+ def update_phone_verification(user_id:, phone_verification:)
991
+
992
+ path = '/users/{userId}/verification/phone'
993
+
524
994
  params = {
525
- emailVerification: email_verification,
995
+ phoneVerification: phone_verification,
526
996
  }
527
-
997
+
528
998
  headers = {
529
999
  "content-type": 'application/json',
530
1000
  }
1001
+ if user_id.nil?
1002
+ raise Appwrite::Exception.new('Missing required parameter: "userId"')
1003
+ end
1004
+
1005
+ if phone_verification.nil?
1006
+ raise Appwrite::Exception.new('Missing required parameter: "phoneVerification"')
1007
+ end
1008
+
1009
+ .gsub('{userId}', user_id)
531
1010
 
532
1011
  @client.call(
533
1012
  method: 'PATCH',
@@ -538,5 +1017,6 @@ module Appwrite
538
1017
  )
539
1018
  end
540
1019
 
1020
+
541
1021
  end
542
1022
  end