appwrite 23.0.0 → 23.1.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +28 -2
  3. data/lib/appwrite/enums/auth_method.rb +13 -0
  4. data/lib/appwrite/enums/build_runtime.rb +1 -0
  5. data/lib/appwrite/enums/email_template_locale.rb +137 -0
  6. data/lib/appwrite/enums/email_template_type.rb +13 -0
  7. data/lib/appwrite/enums/o_auth_provider.rb +5 -0
  8. data/lib/appwrite/enums/project_policy.rb +15 -0
  9. data/lib/appwrite/enums/proxy_resource_type.rb +8 -0
  10. data/lib/appwrite/enums/proxy_rule_deployment_resource_type.rb +8 -0
  11. data/lib/appwrite/enums/proxy_rule_status.rb +9 -0
  12. data/lib/appwrite/enums/runtime.rb +1 -0
  13. data/lib/appwrite/enums/scopes.rb +44 -31
  14. data/lib/appwrite/enums/secure.rb +8 -0
  15. data/lib/appwrite/enums/status_code.rb +10 -0
  16. data/lib/appwrite/models/attribute_bigint.rb +96 -0
  17. data/lib/appwrite/models/block.rb +28 -3
  18. data/lib/appwrite/models/column_bigint.rb +96 -0
  19. data/lib/appwrite/models/email_template.rb +62 -0
  20. data/lib/appwrite/models/email_template_list.rb +32 -0
  21. data/lib/appwrite/models/ephemeral_key.rb +67 -0
  22. data/lib/appwrite/models/membership.rb +5 -0
  23. data/lib/appwrite/models/mock_number.rb +18 -8
  24. data/lib/appwrite/models/mock_number_list.rb +32 -0
  25. data/lib/appwrite/models/o_auth2_amazon.rb +42 -0
  26. data/lib/appwrite/models/o_auth2_apple.rb +52 -0
  27. data/lib/appwrite/models/o_auth2_auth0.rb +47 -0
  28. data/lib/appwrite/models/o_auth2_authentik.rb +47 -0
  29. data/lib/appwrite/models/o_auth2_autodesk.rb +42 -0
  30. data/lib/appwrite/models/o_auth2_bitbucket.rb +42 -0
  31. data/lib/appwrite/models/o_auth2_bitly.rb +42 -0
  32. data/lib/appwrite/models/o_auth2_box.rb +42 -0
  33. data/lib/appwrite/models/o_auth2_dailymotion.rb +42 -0
  34. data/lib/appwrite/models/o_auth2_discord.rb +42 -0
  35. data/lib/appwrite/models/o_auth2_disqus.rb +42 -0
  36. data/lib/appwrite/models/o_auth2_dropbox.rb +42 -0
  37. data/lib/appwrite/models/o_auth2_etsy.rb +42 -0
  38. data/lib/appwrite/models/o_auth2_facebook.rb +42 -0
  39. data/lib/appwrite/models/o_auth2_figma.rb +42 -0
  40. data/lib/appwrite/models/o_auth2_fusion_auth.rb +47 -0
  41. data/lib/appwrite/models/o_auth2_github.rb +42 -0
  42. data/lib/appwrite/models/o_auth2_gitlab.rb +47 -0
  43. data/lib/appwrite/models/o_auth2_google.rb +42 -0
  44. data/lib/appwrite/models/o_auth2_keycloak.rb +52 -0
  45. data/lib/appwrite/models/o_auth2_kick.rb +42 -0
  46. data/lib/appwrite/models/o_auth2_linkedin.rb +42 -0
  47. data/lib/appwrite/models/o_auth2_microsoft.rb +47 -0
  48. data/lib/appwrite/models/o_auth2_notion.rb +42 -0
  49. data/lib/appwrite/models/o_auth2_oidc.rb +62 -0
  50. data/lib/appwrite/models/o_auth2_okta.rb +52 -0
  51. data/lib/appwrite/models/o_auth2_paypal.rb +42 -0
  52. data/lib/appwrite/models/o_auth2_podio.rb +42 -0
  53. data/lib/appwrite/models/o_auth2_provider_list.rb +32 -0
  54. data/lib/appwrite/models/o_auth2_salesforce.rb +42 -0
  55. data/lib/appwrite/models/o_auth2_slack.rb +42 -0
  56. data/lib/appwrite/models/o_auth2_spotify.rb +42 -0
  57. data/lib/appwrite/models/o_auth2_stripe.rb +42 -0
  58. data/lib/appwrite/models/o_auth2_tradeshift.rb +42 -0
  59. data/lib/appwrite/models/o_auth2_twitch.rb +42 -0
  60. data/lib/appwrite/models/o_auth2_word_press.rb +42 -0
  61. data/lib/appwrite/models/o_auth2_x.rb +42 -0
  62. data/lib/appwrite/models/o_auth2_yahoo.rb +42 -0
  63. data/lib/appwrite/models/o_auth2_yandex.rb +42 -0
  64. data/lib/appwrite/models/o_auth2_zoho.rb +42 -0
  65. data/lib/appwrite/models/o_auth2_zoom.rb +42 -0
  66. data/lib/appwrite/models/policy_list.rb +32 -0
  67. data/lib/appwrite/models/policy_membership_privacy.rb +52 -0
  68. data/lib/appwrite/models/policy_password_dictionary.rb +32 -0
  69. data/lib/appwrite/models/policy_password_history.rb +32 -0
  70. data/lib/appwrite/models/policy_password_personal_data.rb +32 -0
  71. data/lib/appwrite/models/policy_session_alert.rb +32 -0
  72. data/lib/appwrite/models/policy_session_duration.rb +32 -0
  73. data/lib/appwrite/models/policy_session_invalidation.rb +32 -0
  74. data/lib/appwrite/models/policy_session_limit.rb +32 -0
  75. data/lib/appwrite/models/policy_user_limit.rb +32 -0
  76. data/lib/appwrite/models/project.rb +20 -5
  77. data/lib/appwrite/models/proxy_rule.rb +127 -0
  78. data/lib/appwrite/models/proxy_rule_list.rb +32 -0
  79. data/lib/appwrite/services/account.rb +1 -1
  80. data/lib/appwrite/services/databases.rb +126 -0
  81. data/lib/appwrite/services/functions.rb +13 -7
  82. data/lib/appwrite/services/project.rb +2695 -288
  83. data/lib/appwrite/services/proxy.rb +303 -0
  84. data/lib/appwrite/services/sites.rb +13 -7
  85. data/lib/appwrite/services/tables_db.rb +120 -0
  86. data/lib/appwrite.rb +69 -0
  87. metadata +71 -2
@@ -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
@@ -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
@@ -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,
@@ -3,28 +3,38 @@
3
3
  module Appwrite
4
4
  module Models
5
5
  class MockNumber
6
- attr_reader :phone
6
+ attr_reader :number
7
7
  attr_reader :otp
8
+ attr_reader :created_at
9
+ attr_reader :updated_at
8
10
 
9
11
  def initialize(
10
- phone:,
11
- otp:
12
+ number:,
13
+ otp:,
14
+ created_at:,
15
+ updated_at:
12
16
  )
13
- @phone = phone
17
+ @number = number
14
18
  @otp = otp
19
+ @created_at = created_at
20
+ @updated_at = updated_at
15
21
  end
16
22
 
17
23
  def self.from(map:)
18
24
  MockNumber.new(
19
- phone: map["phone"],
20
- otp: map["otp"]
25
+ number: map["number"],
26
+ otp: map["otp"],
27
+ created_at: map["$createdAt"],
28
+ updated_at: map["$updatedAt"]
21
29
  )
22
30
  end
23
31
 
24
32
  def to_map
25
33
  {
26
- "phone": @phone,
27
- "otp": @otp
34
+ "number": @number,
35
+ "otp": @otp,
36
+ "$createdAt": @created_at,
37
+ "$updatedAt": @updated_at
28
38
  }
29
39
  end
30
40
  end
@@ -0,0 +1,32 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class MockNumberList
6
+ attr_reader :total
7
+ attr_reader :mock_numbers
8
+
9
+ def initialize(
10
+ total:,
11
+ mock_numbers:
12
+ )
13
+ @total = total
14
+ @mock_numbers = mock_numbers
15
+ end
16
+
17
+ def self.from(map:)
18
+ MockNumberList.new(
19
+ total: map["total"],
20
+ mock_numbers: map["mockNumbers"].map { |it| MockNumber.from(map: it) }
21
+ )
22
+ end
23
+
24
+ def to_map
25
+ {
26
+ "total": @total,
27
+ "mockNumbers": @mock_numbers.map { |it| it.to_map }
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Amazon
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Amazon.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,52 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Apple
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :service_id
9
+ attr_reader :key_id
10
+ attr_reader :team_id
11
+ attr_reader :p8_file
12
+
13
+ def initialize(
14
+ id:,
15
+ enabled:,
16
+ service_id:,
17
+ key_id:,
18
+ team_id:,
19
+ p8_file:
20
+ )
21
+ @id = id
22
+ @enabled = enabled
23
+ @service_id = service_id
24
+ @key_id = key_id
25
+ @team_id = team_id
26
+ @p8_file = p8_file
27
+ end
28
+
29
+ def self.from(map:)
30
+ OAuth2Apple.new(
31
+ id: map["$id"],
32
+ enabled: map["enabled"],
33
+ service_id: map["serviceId"],
34
+ key_id: map["keyId"],
35
+ team_id: map["teamId"],
36
+ p8_file: map["p8File"]
37
+ )
38
+ end
39
+
40
+ def to_map
41
+ {
42
+ "$id": @id,
43
+ "enabled": @enabled,
44
+ "serviceId": @service_id,
45
+ "keyId": @key_id,
46
+ "teamId": @team_id,
47
+ "p8File": @p8_file
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,47 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Auth0
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+ attr_reader :endpoint
11
+
12
+ def initialize(
13
+ id:,
14
+ enabled:,
15
+ client_id:,
16
+ client_secret:,
17
+ endpoint:
18
+ )
19
+ @id = id
20
+ @enabled = enabled
21
+ @client_id = client_id
22
+ @client_secret = client_secret
23
+ @endpoint = endpoint
24
+ end
25
+
26
+ def self.from(map:)
27
+ OAuth2Auth0.new(
28
+ id: map["$id"],
29
+ enabled: map["enabled"],
30
+ client_id: map["clientId"],
31
+ client_secret: map["clientSecret"],
32
+ endpoint: map["endpoint"]
33
+ )
34
+ end
35
+
36
+ def to_map
37
+ {
38
+ "$id": @id,
39
+ "enabled": @enabled,
40
+ "clientId": @client_id,
41
+ "clientSecret": @client_secret,
42
+ "endpoint": @endpoint
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Authentik
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+ attr_reader :endpoint
11
+
12
+ def initialize(
13
+ id:,
14
+ enabled:,
15
+ client_id:,
16
+ client_secret:,
17
+ endpoint:
18
+ )
19
+ @id = id
20
+ @enabled = enabled
21
+ @client_id = client_id
22
+ @client_secret = client_secret
23
+ @endpoint = endpoint
24
+ end
25
+
26
+ def self.from(map:)
27
+ OAuth2Authentik.new(
28
+ id: map["$id"],
29
+ enabled: map["enabled"],
30
+ client_id: map["clientId"],
31
+ client_secret: map["clientSecret"],
32
+ endpoint: map["endpoint"]
33
+ )
34
+ end
35
+
36
+ def to_map
37
+ {
38
+ "$id": @id,
39
+ "enabled": @enabled,
40
+ "clientId": @client_id,
41
+ "clientSecret": @client_secret,
42
+ "endpoint": @endpoint
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Autodesk
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Autodesk.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Bitbucket
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :key
9
+ attr_reader :secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ key:,
15
+ secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @key = key
20
+ @secret = secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Bitbucket.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ key: map["key"],
28
+ secret: map["secret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "key": @key,
37
+ "secret": @secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ #frozen_string_literal: true
2
+
3
+ module Appwrite
4
+ module Models
5
+ class OAuth2Bitly
6
+ attr_reader :id
7
+ attr_reader :enabled
8
+ attr_reader :client_id
9
+ attr_reader :client_secret
10
+
11
+ def initialize(
12
+ id:,
13
+ enabled:,
14
+ client_id:,
15
+ client_secret:
16
+ )
17
+ @id = id
18
+ @enabled = enabled
19
+ @client_id = client_id
20
+ @client_secret = client_secret
21
+ end
22
+
23
+ def self.from(map:)
24
+ OAuth2Bitly.new(
25
+ id: map["$id"],
26
+ enabled: map["enabled"],
27
+ client_id: map["clientId"],
28
+ client_secret: map["clientSecret"]
29
+ )
30
+ end
31
+
32
+ def to_map
33
+ {
34
+ "$id": @id,
35
+ "enabled": @enabled,
36
+ "clientId": @client_id,
37
+ "clientSecret": @client_secret
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end