appwrite 23.0.0 → 24.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +28 -2
  3. data/lib/appwrite/enums/build_runtime.rb +1 -0
  4. data/lib/appwrite/enums/o_auth2_google_prompt.rb +9 -0
  5. data/lib/appwrite/enums/o_auth_provider.rb +3 -0
  6. data/lib/appwrite/enums/project_auth_method_id.rb +13 -0
  7. data/lib/appwrite/enums/project_email_template_id.rb +13 -0
  8. data/lib/appwrite/enums/project_email_template_locale.rb +137 -0
  9. data/lib/appwrite/enums/project_key_scopes.rb +100 -0
  10. data/lib/appwrite/enums/project_o_auth2_google_prompt.rb +9 -0
  11. data/lib/appwrite/enums/project_o_auth_provider_id.rb +51 -0
  12. data/lib/appwrite/enums/project_policy_id.rb +15 -0
  13. data/lib/appwrite/enums/{protocol_id.rb → project_protocol_id.rb} +1 -1
  14. data/lib/appwrite/enums/{service_id.rb → project_service_id.rb} +2 -1
  15. data/lib/appwrite/enums/project_smtp_secure.rb +8 -0
  16. data/lib/appwrite/enums/proxy_resource_type.rb +8 -0
  17. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +8 -0
  18. data/lib/appwrite/enums/proxy_rule_status.rb +9 -0
  19. data/lib/appwrite/enums/runtime.rb +1 -0
  20. data/lib/appwrite/enums/scopes.rb +51 -31
  21. data/lib/appwrite/enums/status_code.rb +10 -0
  22. data/lib/appwrite/models/attribute_bigint.rb +96 -0
  23. data/lib/appwrite/models/block.rb +28 -3
  24. data/lib/appwrite/models/column_bigint.rb +96 -0
  25. data/lib/appwrite/models/database.rb +2 -2
  26. data/lib/appwrite/models/email_template.rb +62 -0
  27. data/lib/appwrite/models/email_template_list.rb +32 -0
  28. data/lib/appwrite/models/ephemeral_key.rb +67 -0
  29. data/lib/appwrite/models/insight.rb +107 -0
  30. data/lib/appwrite/models/insight_cta.rb +42 -0
  31. data/lib/appwrite/models/insight_list.rb +32 -0
  32. data/lib/appwrite/models/membership.rb +5 -0
  33. data/lib/appwrite/models/mock_number.rb +18 -8
  34. data/lib/appwrite/models/mock_number_list.rb +32 -0
  35. data/lib/appwrite/models/o_auth2_amazon.rb +42 -0
  36. data/lib/appwrite/models/o_auth2_apple.rb +52 -0
  37. data/lib/appwrite/models/o_auth2_auth0.rb +47 -0
  38. data/lib/appwrite/models/o_auth2_authentik.rb +47 -0
  39. data/lib/appwrite/models/o_auth2_autodesk.rb +42 -0
  40. data/lib/appwrite/models/o_auth2_bitbucket.rb +42 -0
  41. data/lib/appwrite/models/o_auth2_bitly.rb +42 -0
  42. data/lib/appwrite/models/o_auth2_box.rb +42 -0
  43. data/lib/appwrite/models/o_auth2_dailymotion.rb +42 -0
  44. data/lib/appwrite/models/o_auth2_discord.rb +42 -0
  45. data/lib/appwrite/models/o_auth2_disqus.rb +42 -0
  46. data/lib/appwrite/models/o_auth2_dropbox.rb +42 -0
  47. data/lib/appwrite/models/o_auth2_etsy.rb +42 -0
  48. data/lib/appwrite/models/o_auth2_facebook.rb +42 -0
  49. data/lib/appwrite/models/o_auth2_figma.rb +42 -0
  50. data/lib/appwrite/models/o_auth2_fusion_auth.rb +47 -0
  51. data/lib/appwrite/models/o_auth2_github.rb +42 -0
  52. data/lib/appwrite/models/o_auth2_gitlab.rb +47 -0
  53. data/lib/appwrite/models/o_auth2_google.rb +47 -0
  54. data/lib/appwrite/models/o_auth2_keycloak.rb +52 -0
  55. data/lib/appwrite/models/o_auth2_kick.rb +42 -0
  56. data/lib/appwrite/models/o_auth2_linkedin.rb +42 -0
  57. data/lib/appwrite/models/o_auth2_microsoft.rb +47 -0
  58. data/lib/appwrite/models/o_auth2_notion.rb +42 -0
  59. data/lib/appwrite/models/o_auth2_oidc.rb +62 -0
  60. data/lib/appwrite/models/o_auth2_okta.rb +52 -0
  61. data/lib/appwrite/models/o_auth2_paypal.rb +42 -0
  62. data/lib/appwrite/models/o_auth2_podio.rb +42 -0
  63. data/lib/appwrite/models/o_auth2_provider_list.rb +32 -0
  64. data/lib/appwrite/models/o_auth2_salesforce.rb +42 -0
  65. data/lib/appwrite/models/o_auth2_slack.rb +42 -0
  66. data/lib/appwrite/models/o_auth2_spotify.rb +42 -0
  67. data/lib/appwrite/models/o_auth2_stripe.rb +42 -0
  68. data/lib/appwrite/models/o_auth2_tradeshift.rb +42 -0
  69. data/lib/appwrite/models/o_auth2_twitch.rb +42 -0
  70. data/lib/appwrite/models/o_auth2_word_press.rb +42 -0
  71. data/lib/appwrite/models/o_auth2_x.rb +42 -0
  72. data/lib/appwrite/models/o_auth2_yahoo.rb +42 -0
  73. data/lib/appwrite/models/o_auth2_yandex.rb +42 -0
  74. data/lib/appwrite/models/o_auth2_zoho.rb +42 -0
  75. data/lib/appwrite/models/o_auth2_zoom.rb +42 -0
  76. data/lib/appwrite/models/policy_list.rb +32 -0
  77. data/lib/appwrite/models/policy_membership_privacy.rb +52 -0
  78. data/lib/appwrite/models/policy_password_dictionary.rb +32 -0
  79. data/lib/appwrite/models/policy_password_history.rb +32 -0
  80. data/lib/appwrite/models/policy_password_personal_data.rb +32 -0
  81. data/lib/appwrite/models/policy_session_alert.rb +32 -0
  82. data/lib/appwrite/models/policy_session_duration.rb +32 -0
  83. data/lib/appwrite/models/policy_session_invalidation.rb +32 -0
  84. data/lib/appwrite/models/policy_session_limit.rb +32 -0
  85. data/lib/appwrite/models/policy_user_limit.rb +32 -0
  86. data/lib/appwrite/models/presence.rb +71 -0
  87. data/lib/appwrite/models/presence_list.rb +36 -0
  88. data/lib/appwrite/models/project.rb +25 -280
  89. data/lib/appwrite/models/project_auth_method.rb +53 -0
  90. data/lib/appwrite/models/project_protocol.rb +49 -0
  91. data/lib/appwrite/models/project_service.rb +64 -0
  92. data/lib/appwrite/models/proxy_rule.rb +127 -0
  93. data/lib/appwrite/models/proxy_rule_list.rb +32 -0
  94. data/lib/appwrite/models/report.rb +82 -0
  95. data/lib/appwrite/models/report_list.rb +32 -0
  96. data/lib/appwrite/models/usage_event.rb +72 -0
  97. data/lib/appwrite/models/usage_event_list.rb +32 -0
  98. data/lib/appwrite/models/usage_gauge.rb +37 -0
  99. data/lib/appwrite/models/usage_gauge_list.rb +32 -0
  100. data/lib/appwrite/services/account.rb +1 -1
  101. data/lib/appwrite/services/advisor.rb +173 -0
  102. data/lib/appwrite/services/databases.rb +126 -0
  103. data/lib/appwrite/services/functions.rb +13 -7
  104. data/lib/appwrite/services/presences.rb +199 -0
  105. data/lib/appwrite/services/project.rb +2817 -292
  106. data/lib/appwrite/services/proxy.rb +303 -0
  107. data/lib/appwrite/services/sites.rb +13 -7
  108. data/lib/appwrite/services/tables_db.rb +120 -0
  109. data/lib/appwrite/services/usage.rb +86 -0
  110. data/lib/appwrite.rb +92 -3
  111. metadata +94 -5
  112. data/lib/appwrite/models/auth_provider.rb +0 -47
@@ -0,0 +1,96 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class AttributeBigint
6
+ attr_reader :key
7
+ attr_reader :type
8
+ attr_reader :status
9
+ attr_reader :error
10
+ attr_reader :required
11
+ attr_reader :array
12
+ attr_reader :created_at
13
+ attr_reader :updated_at
14
+ attr_reader :min
15
+ attr_reader :max
16
+ attr_reader :default
17
+
18
+ def initialize(
19
+ key:,
20
+ type:,
21
+ status:,
22
+ error:,
23
+ required:,
24
+ array: ,
25
+ created_at:,
26
+ updated_at:,
27
+ min: ,
28
+ max: ,
29
+ default:
30
+ )
31
+ @key = key
32
+ @type = type
33
+ @status = validate_status(status)
34
+ @error = error
35
+ @required = required
36
+ @array = array
37
+ @created_at = created_at
38
+ @updated_at = updated_at
39
+ @min = min
40
+ @max = max
41
+ @default = default
42
+ end
43
+
44
+ def self.from(map:)
45
+ AttributeBigint.new(
46
+ key: map["key"],
47
+ type: map["type"],
48
+ status: map["status"],
49
+ error: map["error"],
50
+ required: map["required"],
51
+ array: map["array"],
52
+ created_at: map["$createdAt"],
53
+ updated_at: map["$updatedAt"],
54
+ min: map["min"],
55
+ max: map["max"],
56
+ default: map["default"]
57
+ )
58
+ end
59
+
60
+ def to_map
61
+ {
62
+ "key": @key,
63
+ "type": @type,
64
+ "status": @status,
65
+ "error": @error,
66
+ "required": @required,
67
+ "array": @array,
68
+ "$createdAt": @created_at,
69
+ "$updatedAt": @updated_at,
70
+ "min": @min,
71
+ "max": @max,
72
+ "default": @default
73
+ }
74
+ end
75
+
76
+ private
77
+
78
+ def validate_status(status)
79
+ valid_status = [
80
+ Appwrite::Enums::AttributeStatus::AVAILABLE,
81
+ Appwrite::Enums::AttributeStatus::PROCESSING,
82
+ Appwrite::Enums::AttributeStatus::DELETING,
83
+ Appwrite::Enums::AttributeStatus::STUCK,
84
+ Appwrite::Enums::AttributeStatus::FAILED,
85
+ ]
86
+
87
+ unless valid_status.include?(status)
88
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
89
+ end
90
+
91
+ status
92
+ end
93
+
94
+ end
95
+ end
96
+ end
@@ -8,19 +8,34 @@ module Appwrite
8
8
  attr_reader :resource_id
9
9
  attr_reader :reason
10
10
  attr_reader :expired_at
11
+ attr_reader :project_name
12
+ attr_reader :region
13
+ attr_reader :organization_name
14
+ attr_reader :organization_id
15
+ attr_reader :billing_plan
11
16
 
12
17
  def initialize(
13
18
  created_at:,
14
19
  resource_type:,
15
20
  resource_id:,
16
21
  reason: ,
17
- expired_at:
22
+ expired_at: ,
23
+ project_name:,
24
+ region:,
25
+ organization_name:,
26
+ organization_id:,
27
+ billing_plan:
18
28
  )
19
29
  @created_at = created_at
20
30
  @resource_type = resource_type
21
31
  @resource_id = resource_id
22
32
  @reason = reason
23
33
  @expired_at = expired_at
34
+ @project_name = project_name
35
+ @region = region
36
+ @organization_name = organization_name
37
+ @organization_id = organization_id
38
+ @billing_plan = billing_plan
24
39
  end
25
40
 
26
41
  def self.from(map:)
@@ -29,7 +44,12 @@ module Appwrite
29
44
  resource_type: map["resourceType"],
30
45
  resource_id: map["resourceId"],
31
46
  reason: map["reason"],
32
- expired_at: map["expiredAt"]
47
+ expired_at: map["expiredAt"],
48
+ project_name: map["projectName"],
49
+ region: map["region"],
50
+ organization_name: map["organizationName"],
51
+ organization_id: map["organizationId"],
52
+ billing_plan: map["billingPlan"]
33
53
  )
34
54
  end
35
55
 
@@ -39,7 +59,12 @@ module Appwrite
39
59
  "resourceType": @resource_type,
40
60
  "resourceId": @resource_id,
41
61
  "reason": @reason,
42
- "expiredAt": @expired_at
62
+ "expiredAt": @expired_at,
63
+ "projectName": @project_name,
64
+ "region": @region,
65
+ "organizationName": @organization_name,
66
+ "organizationId": @organization_id,
67
+ "billingPlan": @billing_plan
43
68
  }
44
69
  end
45
70
  end
@@ -0,0 +1,96 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class ColumnBigint
6
+ attr_reader :key
7
+ attr_reader :type
8
+ attr_reader :status
9
+ attr_reader :error
10
+ attr_reader :required
11
+ attr_reader :array
12
+ attr_reader :created_at
13
+ attr_reader :updated_at
14
+ attr_reader :min
15
+ attr_reader :max
16
+ attr_reader :default
17
+
18
+ def initialize(
19
+ key:,
20
+ type:,
21
+ status:,
22
+ error:,
23
+ required:,
24
+ array: ,
25
+ created_at:,
26
+ updated_at:,
27
+ min: ,
28
+ max: ,
29
+ default:
30
+ )
31
+ @key = key
32
+ @type = type
33
+ @status = validate_status(status)
34
+ @error = error
35
+ @required = required
36
+ @array = array
37
+ @created_at = created_at
38
+ @updated_at = updated_at
39
+ @min = min
40
+ @max = max
41
+ @default = default
42
+ end
43
+
44
+ def self.from(map:)
45
+ ColumnBigint.new(
46
+ key: map["key"],
47
+ type: map["type"],
48
+ status: map["status"],
49
+ error: map["error"],
50
+ required: map["required"],
51
+ array: map["array"],
52
+ created_at: map["$createdAt"],
53
+ updated_at: map["$updatedAt"],
54
+ min: map["min"],
55
+ max: map["max"],
56
+ default: map["default"]
57
+ )
58
+ end
59
+
60
+ def to_map
61
+ {
62
+ "key": @key,
63
+ "type": @type,
64
+ "status": @status,
65
+ "error": @error,
66
+ "required": @required,
67
+ "array": @array,
68
+ "$createdAt": @created_at,
69
+ "$updatedAt": @updated_at,
70
+ "min": @min,
71
+ "max": @max,
72
+ "default": @default
73
+ }
74
+ end
75
+
76
+ private
77
+
78
+ def validate_status(status)
79
+ valid_status = [
80
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
81
+ Appwrite::Enums::ColumnStatus::PROCESSING,
82
+ Appwrite::Enums::ColumnStatus::DELETING,
83
+ Appwrite::Enums::ColumnStatus::STUCK,
84
+ Appwrite::Enums::ColumnStatus::FAILED,
85
+ ]
86
+
87
+ unless valid_status.include?(status)
88
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
89
+ end
90
+
91
+ status
92
+ end
93
+
94
+ end
95
+ end
96
+ end
@@ -40,8 +40,8 @@ module Appwrite
40
40
  updated_at: map["$updatedAt"],
41
41
  enabled: map["enabled"],
42
42
  type: map["type"],
43
- policies: map["policies"].map { |it| Index.from(map: it) },
44
- archives: map["archives"].map { |it| Collection.from(map: it) }
43
+ policies: map["policies"].map { |it| BackupPolicy.from(map: it) },
44
+ archives: map["archives"].map { |it| BackupArchive.from(map: it) }
45
45
  )
46
46
  end
47
47
 
@@ -0,0 +1,62 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class EmailTemplate
6
+ attr_reader :template_id
7
+ attr_reader :locale
8
+ attr_reader :message
9
+ attr_reader :sender_name
10
+ attr_reader :sender_email
11
+ attr_reader :reply_to_email
12
+ attr_reader :reply_to_name
13
+ attr_reader :subject
14
+
15
+ def initialize(
16
+ template_id:,
17
+ locale:,
18
+ message:,
19
+ sender_name:,
20
+ sender_email:,
21
+ reply_to_email:,
22
+ reply_to_name:,
23
+ subject:
24
+ )
25
+ @template_id = template_id
26
+ @locale = locale
27
+ @message = message
28
+ @sender_name = sender_name
29
+ @sender_email = sender_email
30
+ @reply_to_email = reply_to_email
31
+ @reply_to_name = reply_to_name
32
+ @subject = subject
33
+ end
34
+
35
+ def self.from(map:)
36
+ EmailTemplate.new(
37
+ template_id: map["templateId"],
38
+ locale: map["locale"],
39
+ message: map["message"],
40
+ sender_name: map["senderName"],
41
+ sender_email: map["senderEmail"],
42
+ reply_to_email: map["replyToEmail"],
43
+ reply_to_name: map["replyToName"],
44
+ subject: map["subject"]
45
+ )
46
+ end
47
+
48
+ def to_map
49
+ {
50
+ "templateId": @template_id,
51
+ "locale": @locale,
52
+ "message": @message,
53
+ "senderName": @sender_name,
54
+ "senderEmail": @sender_email,
55
+ "replyToEmail": @reply_to_email,
56
+ "replyToName": @reply_to_name,
57
+ "subject": @subject
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 EmailTemplateList
6
+ attr_reader :total
7
+ attr_reader :templates
8
+
9
+ def initialize(
10
+ total:,
11
+ templates:
12
+ )
13
+ @total = total
14
+ @templates = templates
15
+ end
16
+
17
+ def self.from(map:)
18
+ EmailTemplateList.new(
19
+ total: map["total"],
20
+ templates: map["templates"].map { |it| EmailTemplate.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "templates": @templates.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,67 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class EphemeralKey
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :name
10
+ attr_reader :expire
11
+ attr_reader :scopes
12
+ attr_reader :secret
13
+ attr_reader :accessed_at
14
+ attr_reader :sdks
15
+
16
+ def initialize(
17
+ id:,
18
+ created_at:,
19
+ updated_at:,
20
+ name:,
21
+ expire:,
22
+ scopes:,
23
+ secret:,
24
+ accessed_at:,
25
+ sdks:
26
+ )
27
+ @id = id
28
+ @created_at = created_at
29
+ @updated_at = updated_at
30
+ @name = name
31
+ @expire = expire
32
+ @scopes = scopes
33
+ @secret = secret
34
+ @accessed_at = accessed_at
35
+ @sdks = sdks
36
+ end
37
+
38
+ def self.from(map:)
39
+ EphemeralKey.new(
40
+ id: map["$id"],
41
+ created_at: map["$createdAt"],
42
+ updated_at: map["$updatedAt"],
43
+ name: map["name"],
44
+ expire: map["expire"],
45
+ scopes: map["scopes"],
46
+ secret: map["secret"],
47
+ accessed_at: map["accessedAt"],
48
+ sdks: map["sdks"]
49
+ )
50
+ end
51
+
52
+ def to_map
53
+ {
54
+ "$id": @id,
55
+ "$createdAt": @created_at,
56
+ "$updatedAt": @updated_at,
57
+ "name": @name,
58
+ "expire": @expire,
59
+ "scopes": @scopes,
60
+ "secret": @secret,
61
+ "accessedAt": @accessed_at,
62
+ "sdks": @sdks
63
+ }
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,107 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class Insight
6
+ attr_reader :id
7
+ attr_reader :created_at
8
+ attr_reader :updated_at
9
+ attr_reader :report_id
10
+ attr_reader :type
11
+ attr_reader :severity
12
+ attr_reader :status
13
+ attr_reader :resource_type
14
+ attr_reader :resource_id
15
+ attr_reader :parent_resource_type
16
+ attr_reader :parent_resource_id
17
+ attr_reader :title
18
+ attr_reader :summary
19
+ attr_reader :ctas
20
+ attr_reader :analyzed_at
21
+ attr_reader :dismissed_at
22
+ attr_reader :dismissed_by
23
+
24
+ def initialize(
25
+ id:,
26
+ created_at:,
27
+ updated_at:,
28
+ report_id:,
29
+ type:,
30
+ severity:,
31
+ status:,
32
+ resource_type:,
33
+ resource_id:,
34
+ parent_resource_type:,
35
+ parent_resource_id:,
36
+ title:,
37
+ summary:,
38
+ ctas:,
39
+ analyzed_at: ,
40
+ dismissed_at: ,
41
+ dismissed_by:
42
+ )
43
+ @id = id
44
+ @created_at = created_at
45
+ @updated_at = updated_at
46
+ @report_id = report_id
47
+ @type = type
48
+ @severity = severity
49
+ @status = status
50
+ @resource_type = resource_type
51
+ @resource_id = resource_id
52
+ @parent_resource_type = parent_resource_type
53
+ @parent_resource_id = parent_resource_id
54
+ @title = title
55
+ @summary = summary
56
+ @ctas = ctas
57
+ @analyzed_at = analyzed_at
58
+ @dismissed_at = dismissed_at
59
+ @dismissed_by = dismissed_by
60
+ end
61
+
62
+ def self.from(map:)
63
+ Insight.new(
64
+ id: map["$id"],
65
+ created_at: map["$createdAt"],
66
+ updated_at: map["$updatedAt"],
67
+ report_id: map["reportId"],
68
+ type: map["type"],
69
+ severity: map["severity"],
70
+ status: map["status"],
71
+ resource_type: map["resourceType"],
72
+ resource_id: map["resourceId"],
73
+ parent_resource_type: map["parentResourceType"],
74
+ parent_resource_id: map["parentResourceId"],
75
+ title: map["title"],
76
+ summary: map["summary"],
77
+ ctas: map["ctas"].map { |it| InsightCTA.from(map: it) },
78
+ analyzed_at: map["analyzedAt"],
79
+ dismissed_at: map["dismissedAt"],
80
+ dismissed_by: map["dismissedBy"]
81
+ )
82
+ end
83
+
84
+ def to_map
85
+ {
86
+ "$id": @id,
87
+ "$createdAt": @created_at,
88
+ "$updatedAt": @updated_at,
89
+ "reportId": @report_id,
90
+ "type": @type,
91
+ "severity": @severity,
92
+ "status": @status,
93
+ "resourceType": @resource_type,
94
+ "resourceId": @resource_id,
95
+ "parentResourceType": @parent_resource_type,
96
+ "parentResourceId": @parent_resource_id,
97
+ "title": @title,
98
+ "summary": @summary,
99
+ "ctas": @ctas.map { |it| it.to_map },
100
+ "analyzedAt": @analyzed_at,
101
+ "dismissedAt": @dismissed_at,
102
+ "dismissedBy": @dismissed_by
103
+ }
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class InsightCTA
6
+ attr_reader :label
7
+ attr_reader :service
8
+ attr_reader :method
9
+ attr_reader :params
10
+
11
+ def initialize(
12
+ label:,
13
+ service:,
14
+ method:,
15
+ params:
16
+ )
17
+ @label = label
18
+ @service = service
19
+ @method = method
20
+ @params = params
21
+ end
22
+
23
+ def self.from(map:)
24
+ InsightCTA.new(
25
+ label: map["label"],
26
+ service: map["service"],
27
+ method: map["method"],
28
+ params: map["params"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "label": @label,
35
+ "service": @service,
36
+ "method": @method,
37
+ "params": @params
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class InsightList
6
+ attr_reader :total
7
+ attr_reader :insights
8
+
9
+ def initialize(
10
+ total:,
11
+ insights:
12
+ )
13
+ @total = total
14
+ @insights = insights
15
+ end
16
+
17
+ def self.from(map:)
18
+ InsightList.new(
19
+ total: map["total"],
20
+ insights: map["insights"].map { |it| Insight.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "insights": @insights.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -9,6 +9,7 @@ module Appwrite
9
9
  attr_reader :user_id
10
10
  attr_reader :user_name
11
11
  attr_reader :user_email
12
+ attr_reader :user_phone
12
13
  attr_reader :team_id
13
14
  attr_reader :team_name
14
15
  attr_reader :invited
@@ -24,6 +25,7 @@ module Appwrite
24
25
  user_id:,
25
26
  user_name:,
26
27
  user_email:,
28
+ user_phone:,
27
29
  team_id:,
28
30
  team_name:,
29
31
  invited:,
@@ -38,6 +40,7 @@ module Appwrite
38
40
  @user_id = user_id
39
41
  @user_name = user_name
40
42
  @user_email = user_email
43
+ @user_phone = user_phone
41
44
  @team_id = team_id
42
45
  @team_name = team_name
43
46
  @invited = invited
@@ -55,6 +58,7 @@ module Appwrite
55
58
  user_id: map["userId"],
56
59
  user_name: map["userName"],
57
60
  user_email: map["userEmail"],
61
+ user_phone: map["userPhone"],
58
62
  team_id: map["teamId"],
59
63
  team_name: map["teamName"],
60
64
  invited: map["invited"],
@@ -73,6 +77,7 @@ module Appwrite
73
77
  "userId": @user_id,
74
78
  "userName": @user_name,
75
79
  "userEmail": @user_email,
80
+ "userPhone": @user_phone,
76
81
  "teamId": @team_id,
77
82
  "teamName": @team_name,
78
83
  "invited": @invited,