appwrite 10.1.2 → 11.0.0

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +36 -7
  3. data/lib/appwrite/enums/authentication_factor.rb +10 -0
  4. data/lib/appwrite/enums/authenticator_type.rb +7 -0
  5. data/lib/appwrite/enums/browser.rb +20 -0
  6. data/lib/appwrite/enums/compression.rb +9 -0
  7. data/lib/appwrite/enums/credit_card.rb +22 -0
  8. data/lib/appwrite/enums/execution_method.rb +12 -0
  9. data/lib/appwrite/enums/flag.rb +200 -0
  10. data/lib/appwrite/enums/image_format.rb +11 -0
  11. data/lib/appwrite/enums/image_gravity.rb +15 -0
  12. data/lib/appwrite/enums/index_type.rb +9 -0
  13. data/lib/appwrite/enums/messaging_provider_type.rb +9 -0
  14. data/lib/appwrite/enums/name.rb +19 -0
  15. data/lib/appwrite/enums/o_auth_provider.rb +45 -0
  16. data/lib/appwrite/enums/password_hash.rb +17 -0
  17. data/lib/appwrite/enums/relation_mutate.rb +9 -0
  18. data/lib/appwrite/enums/relationship_type.rb +10 -0
  19. data/lib/appwrite/enums/runtime.rb +50 -0
  20. data/lib/appwrite/enums/smtp_encryption.rb +9 -0
  21. data/lib/appwrite/models/health_certificate.rb +52 -0
  22. data/lib/appwrite/models/jwt.rb +27 -0
  23. data/lib/appwrite/models/membership.rb +5 -0
  24. data/lib/appwrite/models/message.rb +87 -0
  25. data/lib/appwrite/models/message_list.rb +32 -0
  26. data/lib/appwrite/models/mfa_challenge.rb +42 -0
  27. data/lib/appwrite/models/mfa_factors.rb +37 -0
  28. data/lib/appwrite/models/mfa_recovery_codes.rb +27 -0
  29. data/lib/appwrite/models/mfa_type.rb +32 -0
  30. data/lib/appwrite/models/provider.rb +67 -0
  31. data/lib/appwrite/models/provider_list.rb +32 -0
  32. data/lib/appwrite/models/session.rb +18 -3
  33. data/lib/appwrite/models/subscriber.rb +67 -0
  34. data/lib/appwrite/models/subscriber_list.rb +32 -0
  35. data/lib/appwrite/models/target.rb +62 -0
  36. data/lib/appwrite/models/target_list.rb +32 -0
  37. data/lib/appwrite/models/token.rb +8 -3
  38. data/lib/appwrite/models/topic.rb +62 -0
  39. data/lib/appwrite/models/topic_list.rb +32 -0
  40. data/lib/appwrite/models/user.rb +10 -0
  41. data/lib/appwrite/query.rb +53 -28
  42. data/lib/appwrite/services/account.rb +935 -168
  43. data/lib/appwrite/services/avatars.rb +3 -3
  44. data/lib/appwrite/services/databases.rb +22 -16
  45. data/lib/appwrite/services/functions.rb +3 -3
  46. data/lib/appwrite/services/health.rb +138 -0
  47. data/lib/appwrite/services/messaging.rb +1886 -0
  48. data/lib/appwrite/services/storage.rb +4 -4
  49. data/lib/appwrite/services/teams.rb +1 -1
  50. data/lib/appwrite/services/users.rb +475 -4
  51. data/lib/appwrite.rb +36 -0
  52. metadata +37 -2
@@ -0,0 +1,62 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Topic
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :name
10
+ attr_reader :email_total
11
+ attr_reader :sms_total
12
+ attr_reader :push_total
13
+ attr_reader :subscribe
14
+
15
+ def initialize(
16
+ id:,
17
+ created_at:,
18
+ updated_at:,
19
+ name:,
20
+ email_total:,
21
+ sms_total:,
22
+ push_total:,
23
+ subscribe:
24
+ )
25
+ @id = id
26
+ @created_at = created_at
27
+ @updated_at = updated_at
28
+ @name = name
29
+ @email_total = email_total
30
+ @sms_total = sms_total
31
+ @push_total = push_total
32
+ @subscribe = subscribe
33
+ end
34
+
35
+ def self.from(map:)
36
+ Topic.new(
37
+ id: map["$id"],
38
+ created_at: map["$createdAt"],
39
+ updated_at: map["$updatedAt"],
40
+ name: map["name"],
41
+ email_total: map["emailTotal"],
42
+ sms_total: map["smsTotal"],
43
+ push_total: map["pushTotal"],
44
+ subscribe: map["subscribe"]
45
+ )
46
+ end
47
+
48
+ def to_map
49
+ {
50
+ "$id": @id,
51
+ "$createdAt": @created_at,
52
+ "$updatedAt": @updated_at,
53
+ "name": @name,
54
+ "emailTotal": @email_total,
55
+ "smsTotal": @sms_total,
56
+ "pushTotal": @push_total,
57
+ "subscribe": @subscribe
58
+ }
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class TopicList
6
+ attr_reader :total
7
+ attr_reader :topics
8
+
9
+ def initialize(
10
+ total:,
11
+ topics:
12
+ )
13
+ @total = total
14
+ @topics = topics
15
+ end
16
+
17
+ def self.from(map:)
18
+ TopicList.new(
19
+ total: map["total"],
20
+ topics: map["topics"].map { |it| Topic.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "topics": @topics.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -18,7 +18,9 @@ module Appwrite
18
18
  attr_reader :phone
19
19
  attr_reader :email_verification
20
20
  attr_reader :phone_verification
21
+ attr_reader :mfa
21
22
  attr_reader :prefs
23
+ attr_reader :targets
22
24
  attr_reader :accessed_at
23
25
 
24
26
  def initialize(
@@ -37,7 +39,9 @@ module Appwrite
37
39
  phone:,
38
40
  email_verification:,
39
41
  phone_verification:,
42
+ mfa:,
40
43
  prefs:,
44
+ targets:,
41
45
  accessed_at:
42
46
  )
43
47
  @id = id
@@ -55,7 +59,9 @@ module Appwrite
55
59
  @phone = phone
56
60
  @email_verification = email_verification
57
61
  @phone_verification = phone_verification
62
+ @mfa = mfa
58
63
  @prefs = prefs
64
+ @targets = targets
59
65
  @accessed_at = accessed_at
60
66
  end
61
67
 
@@ -76,7 +82,9 @@ module Appwrite
76
82
  phone: map["phone"],
77
83
  email_verification: map["emailVerification"],
78
84
  phone_verification: map["phoneVerification"],
85
+ mfa: map["mfa"],
79
86
  prefs: Preferences.from(map: map["prefs"]),
87
+ targets: map["targets"].map { |it| Target.from(map: it) },
80
88
  accessed_at: map["accessedAt"]
81
89
  )
82
90
  end
@@ -98,7 +106,9 @@ module Appwrite
98
106
  "phone": @phone,
99
107
  "emailVerification": @email_verification,
100
108
  "phoneVerification": @phone_verification,
109
+ "mfa": @mfa,
101
110
  "prefs": @prefs.to_map,
111
+ "targets": @targets.map { |it| it.to_map },
102
112
  "accessedAt": @accessed_at
103
113
  }
104
114
  end
@@ -1,94 +1,119 @@
1
+ require 'json'
2
+
1
3
  module Appwrite
2
4
  class Query
5
+ def initialize(method, attribute = nil, values = nil)
6
+ @method = method
7
+ @attribute = attribute
8
+
9
+ if values != nil
10
+ if values.is_a?(Array)
11
+ @values = values
12
+ else
13
+ @values = [values]
14
+ end
15
+ end
16
+ end
17
+
18
+ def to_json(*args)
19
+ {
20
+ method: @method,
21
+ attribute: @attribute,
22
+ values: @values
23
+ }.compact.to_json(*args)
24
+ end
25
+
26
+ def to_s
27
+ return self.to_json
28
+ end
29
+
3
30
  class << Query
4
31
  def equal(attribute, value)
5
- return add_query(attribute, "equal", value)
32
+ return Query.new("equal", attribute, value).to_s
6
33
  end
7
34
 
8
35
  def not_equal(attribute, value)
9
- return add_query(attribute, "notEqual", value)
36
+ return Query.new("notEqual", attribute, value).to_s
10
37
  end
11
38
 
12
39
  def less_than(attribute, value)
13
- return add_query(attribute, "lessThan", value)
40
+ return Query.new("lessThan", attribute, value).to_s
14
41
  end
15
42
 
16
43
  def less_than_equal(attribute, value)
17
- return add_query(attribute, "lessThanEqual", value)
44
+ return Query.new("lessThanEqual", attribute, value).to_s
18
45
  end
19
46
 
20
47
  def greater_than(attribute, value)
21
- return add_query(attribute, "greaterThan", value)
48
+ return Query.new("greaterThan", attribute, value).to_s
22
49
  end
23
50
 
24
51
  def greater_than_equal(attribute, value)
25
- return add_query(attribute, "greaterThanEqual", value)
52
+ return Query.new("greaterThanEqual", attribute, value).to_s
26
53
  end
27
54
 
28
55
  def is_null(attribute)
29
- return "isNull(\"#{attribute}\")"
56
+ return Query.new("isNull", attribute, nil).to_s
30
57
  end
31
58
 
32
59
  def is_not_null(attribute)
33
- return "isNotNull(\"#{attribute}\")"
60
+ return Query.new("isNotNull", attribute, nil).to_s
34
61
  end
35
62
 
36
63
  def between(attribute, start, ending)
37
- return "between(\"#{attribute}\", #{parse_values(start)}, #{parse_values(ending)})"
64
+ return Query.new("between", attribute, [start, ending]).to_s
38
65
  end
39
66
 
40
67
  def starts_with(attribute, value)
41
- return add_query(attribute, "startsWith", value)
68
+ return Query.new("startsWith", attribute, value).to_s
42
69
  end
43
70
 
44
71
  def ends_with(attribute, value)
45
- return add_query(attribute, "endsWith", value)
72
+ return Query.new("endsWith", attribute, value).to_s
46
73
  end
47
74
 
48
75
  def select(attributes)
49
- return "select([#{attributes.map {|attribute| "\"#{attribute}\""}.join(',')}])"
76
+ return Query.new("select", nil, attributes).to_s
50
77
  end
51
78
 
52
79
  def search(attribute, value)
53
- return add_query(attribute, "search", value)
80
+ return Query.new("search", attribute, value).to_s
54
81
  end
55
82
 
56
83
  def order_asc(attribute)
57
- return "orderAsc(\"#{attribute}\")"
84
+ return Query.new("orderAsc", attribute, nil).to_s
58
85
  end
59
86
 
60
87
  def order_desc(attribute)
61
- return "orderDesc(\"#{attribute}\")"
88
+ return Query.new("orderDesc", attribute, nil).to_s
62
89
  end
63
90
 
64
91
  def cursor_before(id)
65
- return "cursorBefore(\"#{id}\")"
92
+ return Query.new("cursorBefore", nil, id).to_s
66
93
  end
67
94
 
68
95
  def cursor_after(id)
69
- return "cursorAfter(\"#{id}\")"
96
+ return Query.new("cursorAfter", nil, id).to_s
70
97
  end
71
98
 
72
99
  def limit(limit)
73
- return "limit(#{limit})"
100
+ return Query.new("limit", nil, limit).to_s
74
101
  end
75
102
 
76
103
  def offset(offset)
77
- return "offset(#{offset})"
104
+ return Query.new("offset", nil, offset).to_s
78
105
  end
79
106
 
80
- private
107
+ def contains(attribute, value)
108
+ return Query.new("contains", attribute, value).to_s
109
+ end
81
110
 
82
- def add_query(attribute, method, value)
83
- if value.is_a?(Array)
84
- "#{method}(\"#{attribute}\", [#{value.map {|item| parse_values(item)}.join(',')}])"
85
- else
86
- return "#{method}(\"#{attribute}\", [#{parse_values(value)}])"
87
- end
111
+ def or(queries)
112
+ return Query.new("or", nil, queries.map { |query| JSON.parse(query) }).to_s
88
113
  end
89
114
 
90
- def parse_values(value)
91
- return value.is_a?(String) ? "\"#{value}\"" : value
115
+ def and(queries)
116
+ return Query.new("and", nil, queries.map { |query| JSON.parse(query) }).to_s
92
117
  end
93
118
  end
94
119
  end