appwrite 18.0.0 → 19.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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +1 -1
  3. data/lib/appwrite/enums/attribute_status.rb +11 -0
  4. data/lib/appwrite/enums/column_status.rb +11 -0
  5. data/lib/appwrite/enums/database_type.rb +8 -0
  6. data/lib/appwrite/enums/deployment_status.rb +11 -0
  7. data/lib/appwrite/enums/execution_status.rb +10 -0
  8. data/lib/appwrite/enums/execution_trigger.rb +9 -0
  9. data/lib/appwrite/enums/health_antivirus_status.rb +9 -0
  10. data/lib/appwrite/enums/health_check_status.rb +8 -0
  11. data/lib/appwrite/enums/index_status.rb +11 -0
  12. data/lib/appwrite/enums/message_status.rb +11 -0
  13. data/lib/appwrite/models/attribute_boolean.rb +20 -1
  14. data/lib/appwrite/models/attribute_datetime.rb +20 -1
  15. data/lib/appwrite/models/attribute_email.rb +20 -1
  16. data/lib/appwrite/models/attribute_enum.rb +20 -1
  17. data/lib/appwrite/models/attribute_float.rb +20 -1
  18. data/lib/appwrite/models/attribute_integer.rb +20 -1
  19. data/lib/appwrite/models/attribute_ip.rb +20 -1
  20. data/lib/appwrite/models/attribute_line.rb +20 -1
  21. data/lib/appwrite/models/attribute_point.rb +20 -1
  22. data/lib/appwrite/models/attribute_polygon.rb +20 -1
  23. data/lib/appwrite/models/attribute_relationship.rb +20 -1
  24. data/lib/appwrite/models/attribute_string.rb +20 -1
  25. data/lib/appwrite/models/attribute_url.rb +20 -1
  26. data/lib/appwrite/models/column_boolean.rb +20 -1
  27. data/lib/appwrite/models/column_datetime.rb +20 -1
  28. data/lib/appwrite/models/column_email.rb +20 -1
  29. data/lib/appwrite/models/column_enum.rb +20 -1
  30. data/lib/appwrite/models/column_float.rb +20 -1
  31. data/lib/appwrite/models/column_integer.rb +20 -1
  32. data/lib/appwrite/models/column_ip.rb +20 -1
  33. data/lib/appwrite/models/column_line.rb +20 -1
  34. data/lib/appwrite/models/column_point.rb +20 -1
  35. data/lib/appwrite/models/column_polygon.rb +20 -1
  36. data/lib/appwrite/models/column_relationship.rb +20 -1
  37. data/lib/appwrite/models/column_string.rb +20 -1
  38. data/lib/appwrite/models/column_url.rb +20 -1
  39. data/lib/appwrite/models/database.rb +17 -1
  40. data/lib/appwrite/models/deployment.rb +25 -6
  41. data/lib/appwrite/models/document.rb +1 -1
  42. data/lib/appwrite/models/execution.rb +34 -2
  43. data/lib/appwrite/models/health_antivirus.rb +18 -1
  44. data/lib/appwrite/models/health_status.rb +17 -1
  45. data/lib/appwrite/models/index.rb +20 -1
  46. data/lib/appwrite/models/message.rb +20 -1
  47. data/lib/appwrite/models/preferences.rb +1 -1
  48. data/lib/appwrite/models/row.rb +1 -1
  49. data/lib/appwrite/query.rb +4 -0
  50. data/lib/appwrite/services/tables_db.rb +1 -1
  51. metadata +12 -2
@@ -28,7 +28,7 @@ module Appwrite
28
28
  )
29
29
  @key = key
30
30
  @type = type
31
- @status = status
31
+ @status = validate_status(status)
32
32
  @error = error
33
33
  @required = required
34
34
  @array = array
@@ -67,6 +67,25 @@ module Appwrite
67
67
  "default": @default
68
68
  }
69
69
  end
70
+
71
+ private
72
+
73
+ def validate_status(status)
74
+ valid_status = [
75
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
76
+ Appwrite::Enums::ColumnStatus::PROCESSING,
77
+ Appwrite::Enums::ColumnStatus::DELETING,
78
+ Appwrite::Enums::ColumnStatus::STUCK,
79
+ Appwrite::Enums::ColumnStatus::FAILED,
80
+ ]
81
+
82
+ unless valid_status.include?(status)
83
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
84
+ end
85
+
86
+ status
87
+ end
88
+
70
89
  end
71
90
  end
72
91
  end
@@ -30,7 +30,7 @@ module Appwrite
30
30
  )
31
31
  @key = key
32
32
  @type = type
33
- @status = status
33
+ @status = validate_status(status)
34
34
  @error = error
35
35
  @required = required
36
36
  @array = array
@@ -72,6 +72,25 @@ module Appwrite
72
72
  "default": @default
73
73
  }
74
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
+
75
94
  end
76
95
  end
77
96
  end
@@ -30,7 +30,7 @@ module Appwrite
30
30
  )
31
31
  @key = key
32
32
  @type = type
33
- @status = status
33
+ @status = validate_status(status)
34
34
  @error = error
35
35
  @required = required
36
36
  @array = array
@@ -72,6 +72,25 @@ module Appwrite
72
72
  "default": @default
73
73
  }
74
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
+
75
94
  end
76
95
  end
77
96
  end
@@ -30,7 +30,7 @@ module Appwrite
30
30
  )
31
31
  @key = key
32
32
  @type = type
33
- @status = status
33
+ @status = validate_status(status)
34
34
  @error = error
35
35
  @required = required
36
36
  @array = array
@@ -72,6 +72,25 @@ module Appwrite
72
72
  "default": @default
73
73
  }
74
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
+
75
94
  end
76
95
  end
77
96
  end
@@ -28,7 +28,7 @@ module Appwrite
28
28
  )
29
29
  @key = key
30
30
  @type = type
31
- @status = status
31
+ @status = validate_status(status)
32
32
  @error = error
33
33
  @required = required
34
34
  @array = array
@@ -67,6 +67,25 @@ module Appwrite
67
67
  "default": @default
68
68
  }
69
69
  end
70
+
71
+ private
72
+
73
+ def validate_status(status)
74
+ valid_status = [
75
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
76
+ Appwrite::Enums::ColumnStatus::PROCESSING,
77
+ Appwrite::Enums::ColumnStatus::DELETING,
78
+ Appwrite::Enums::ColumnStatus::STUCK,
79
+ Appwrite::Enums::ColumnStatus::FAILED,
80
+ ]
81
+
82
+ unless valid_status.include?(status)
83
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
84
+ end
85
+
86
+ status
87
+ end
88
+
70
89
  end
71
90
  end
72
91
  end
@@ -26,7 +26,7 @@ module Appwrite
26
26
  )
27
27
  @key = key
28
28
  @type = type
29
- @status = status
29
+ @status = validate_status(status)
30
30
  @error = error
31
31
  @required = required
32
32
  @array = array
@@ -62,6 +62,25 @@ module Appwrite
62
62
  "default": @default
63
63
  }
64
64
  end
65
+
66
+ private
67
+
68
+ def validate_status(status)
69
+ valid_status = [
70
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
71
+ Appwrite::Enums::ColumnStatus::PROCESSING,
72
+ Appwrite::Enums::ColumnStatus::DELETING,
73
+ Appwrite::Enums::ColumnStatus::STUCK,
74
+ Appwrite::Enums::ColumnStatus::FAILED,
75
+ ]
76
+
77
+ unless valid_status.include?(status)
78
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
79
+ end
80
+
81
+ status
82
+ end
83
+
65
84
  end
66
85
  end
67
86
  end
@@ -26,7 +26,7 @@ module Appwrite
26
26
  )
27
27
  @key = key
28
28
  @type = type
29
- @status = status
29
+ @status = validate_status(status)
30
30
  @error = error
31
31
  @required = required
32
32
  @array = array
@@ -62,6 +62,25 @@ module Appwrite
62
62
  "default": @default
63
63
  }
64
64
  end
65
+
66
+ private
67
+
68
+ def validate_status(status)
69
+ valid_status = [
70
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
71
+ Appwrite::Enums::ColumnStatus::PROCESSING,
72
+ Appwrite::Enums::ColumnStatus::DELETING,
73
+ Appwrite::Enums::ColumnStatus::STUCK,
74
+ Appwrite::Enums::ColumnStatus::FAILED,
75
+ ]
76
+
77
+ unless valid_status.include?(status)
78
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
79
+ end
80
+
81
+ status
82
+ end
83
+
65
84
  end
66
85
  end
67
86
  end
@@ -26,7 +26,7 @@ module Appwrite
26
26
  )
27
27
  @key = key
28
28
  @type = type
29
- @status = status
29
+ @status = validate_status(status)
30
30
  @error = error
31
31
  @required = required
32
32
  @array = array
@@ -62,6 +62,25 @@ module Appwrite
62
62
  "default": @default
63
63
  }
64
64
  end
65
+
66
+ private
67
+
68
+ def validate_status(status)
69
+ valid_status = [
70
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
71
+ Appwrite::Enums::ColumnStatus::PROCESSING,
72
+ Appwrite::Enums::ColumnStatus::DELETING,
73
+ Appwrite::Enums::ColumnStatus::STUCK,
74
+ Appwrite::Enums::ColumnStatus::FAILED,
75
+ ]
76
+
77
+ unless valid_status.include?(status)
78
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
79
+ end
80
+
81
+ status
82
+ end
83
+
65
84
  end
66
85
  end
67
86
  end
@@ -36,7 +36,7 @@ module Appwrite
36
36
  )
37
37
  @key = key
38
38
  @type = type
39
- @status = status
39
+ @status = validate_status(status)
40
40
  @error = error
41
41
  @required = required
42
42
  @array = array
@@ -87,6 +87,25 @@ module Appwrite
87
87
  "side": @side
88
88
  }
89
89
  end
90
+
91
+ private
92
+
93
+ def validate_status(status)
94
+ valid_status = [
95
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
96
+ Appwrite::Enums::ColumnStatus::PROCESSING,
97
+ Appwrite::Enums::ColumnStatus::DELETING,
98
+ Appwrite::Enums::ColumnStatus::STUCK,
99
+ Appwrite::Enums::ColumnStatus::FAILED,
100
+ ]
101
+
102
+ unless valid_status.include?(status)
103
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
104
+ end
105
+
106
+ status
107
+ end
108
+
90
109
  end
91
110
  end
92
111
  end
@@ -30,7 +30,7 @@ module Appwrite
30
30
  )
31
31
  @key = key
32
32
  @type = type
33
- @status = status
33
+ @status = validate_status(status)
34
34
  @error = error
35
35
  @required = required
36
36
  @array = array
@@ -72,6 +72,25 @@ module Appwrite
72
72
  "encrypt": @encrypt
73
73
  }
74
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
+
75
94
  end
76
95
  end
77
96
  end
@@ -28,7 +28,7 @@ module Appwrite
28
28
  )
29
29
  @key = key
30
30
  @type = type
31
- @status = status
31
+ @status = validate_status(status)
32
32
  @error = error
33
33
  @required = required
34
34
  @array = array
@@ -67,6 +67,25 @@ module Appwrite
67
67
  "default": @default
68
68
  }
69
69
  end
70
+
71
+ private
72
+
73
+ def validate_status(status)
74
+ valid_status = [
75
+ Appwrite::Enums::ColumnStatus::AVAILABLE,
76
+ Appwrite::Enums::ColumnStatus::PROCESSING,
77
+ Appwrite::Enums::ColumnStatus::DELETING,
78
+ Appwrite::Enums::ColumnStatus::STUCK,
79
+ Appwrite::Enums::ColumnStatus::FAILED,
80
+ ]
81
+
82
+ unless valid_status.include?(status)
83
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
84
+ end
85
+
86
+ status
87
+ end
88
+
70
89
  end
71
90
  end
72
91
  end
@@ -23,7 +23,7 @@ module Appwrite
23
23
  @created_at = created_at
24
24
  @updated_at = updated_at
25
25
  @enabled = enabled
26
- @type = type
26
+ @type = validate_type(type)
27
27
  end
28
28
 
29
29
  def self.from(map:)
@@ -47,6 +47,22 @@ module Appwrite
47
47
  "type": @type
48
48
  }
49
49
  end
50
+
51
+ private
52
+
53
+ def validate_type(type)
54
+ valid_type = [
55
+ Appwrite::Enums::DatabaseType::LEGACY,
56
+ Appwrite::Enums::DatabaseType::TABLESDB,
57
+ ]
58
+
59
+ unless valid_type.include?(type)
60
+ raise ArgumentError, "Invalid " + type + ". Must be one of: " + valid_type.join(', ')
61
+ end
62
+
63
+ type
64
+ end
65
+
50
66
  end
51
67
  end
52
68
  end
@@ -23,12 +23,12 @@ module Appwrite
23
23
  attr_reader :provider_repository_name
24
24
  attr_reader :provider_repository_owner
25
25
  attr_reader :provider_repository_url
26
- attr_reader :provider_branch
27
26
  attr_reader :provider_commit_hash
28
27
  attr_reader :provider_commit_author_url
29
28
  attr_reader :provider_commit_author
30
29
  attr_reader :provider_commit_message
31
30
  attr_reader :provider_commit_url
31
+ attr_reader :provider_branch
32
32
  attr_reader :provider_branch_url
33
33
 
34
34
  def initialize(
@@ -52,12 +52,12 @@ module Appwrite
52
52
  provider_repository_name:,
53
53
  provider_repository_owner:,
54
54
  provider_repository_url:,
55
- provider_branch:,
56
55
  provider_commit_hash:,
57
56
  provider_commit_author_url:,
58
57
  provider_commit_author:,
59
58
  provider_commit_message:,
60
59
  provider_commit_url:,
60
+ provider_branch:,
61
61
  provider_branch_url:
62
62
  )
63
63
  @id = id
@@ -74,18 +74,18 @@ module Appwrite
74
74
  @activate = activate
75
75
  @screenshot_light = screenshot_light
76
76
  @screenshot_dark = screenshot_dark
77
- @status = status
77
+ @status = validate_status(status)
78
78
  @build_logs = build_logs
79
79
  @build_duration = build_duration
80
80
  @provider_repository_name = provider_repository_name
81
81
  @provider_repository_owner = provider_repository_owner
82
82
  @provider_repository_url = provider_repository_url
83
- @provider_branch = provider_branch
84
83
  @provider_commit_hash = provider_commit_hash
85
84
  @provider_commit_author_url = provider_commit_author_url
86
85
  @provider_commit_author = provider_commit_author
87
86
  @provider_commit_message = provider_commit_message
88
87
  @provider_commit_url = provider_commit_url
88
+ @provider_branch = provider_branch
89
89
  @provider_branch_url = provider_branch_url
90
90
  end
91
91
 
@@ -111,12 +111,12 @@ module Appwrite
111
111
  provider_repository_name: map["providerRepositoryName"],
112
112
  provider_repository_owner: map["providerRepositoryOwner"],
113
113
  provider_repository_url: map["providerRepositoryUrl"],
114
- provider_branch: map["providerBranch"],
115
114
  provider_commit_hash: map["providerCommitHash"],
116
115
  provider_commit_author_url: map["providerCommitAuthorUrl"],
117
116
  provider_commit_author: map["providerCommitAuthor"],
118
117
  provider_commit_message: map["providerCommitMessage"],
119
118
  provider_commit_url: map["providerCommitUrl"],
119
+ provider_branch: map["providerBranch"],
120
120
  provider_branch_url: map["providerBranchUrl"]
121
121
  )
122
122
  end
@@ -143,15 +143,34 @@ module Appwrite
143
143
  "providerRepositoryName": @provider_repository_name,
144
144
  "providerRepositoryOwner": @provider_repository_owner,
145
145
  "providerRepositoryUrl": @provider_repository_url,
146
- "providerBranch": @provider_branch,
147
146
  "providerCommitHash": @provider_commit_hash,
148
147
  "providerCommitAuthorUrl": @provider_commit_author_url,
149
148
  "providerCommitAuthor": @provider_commit_author,
150
149
  "providerCommitMessage": @provider_commit_message,
151
150
  "providerCommitUrl": @provider_commit_url,
151
+ "providerBranch": @provider_branch,
152
152
  "providerBranchUrl": @provider_branch_url
153
153
  }
154
154
  end
155
+
156
+ private
157
+
158
+ def validate_status(status)
159
+ valid_status = [
160
+ Appwrite::Enums::DeploymentStatus::WAITING,
161
+ Appwrite::Enums::DeploymentStatus::PROCESSING,
162
+ Appwrite::Enums::DeploymentStatus::BUILDING,
163
+ Appwrite::Enums::DeploymentStatus::READY,
164
+ Appwrite::Enums::DeploymentStatus::FAILED,
165
+ ]
166
+
167
+ unless valid_status.include?(status)
168
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
169
+ end
170
+
171
+ status
172
+ end
173
+
155
174
  end
156
175
  end
157
176
  end
@@ -41,7 +41,7 @@ module Appwrite
41
41
  created_at: map["$createdAt"],
42
42
  updated_at: map["$updatedAt"],
43
43
  permissions: map["$permissions"],
44
- data: map
44
+ data: map["data"] || map
45
45
  )
46
46
  end
47
47
 
@@ -48,8 +48,8 @@ module Appwrite
48
48
  @permissions = permissions
49
49
  @function_id = function_id
50
50
  @deployment_id = deployment_id
51
- @trigger = trigger
52
- @status = status
51
+ @trigger = validate_trigger(trigger)
52
+ @status = validate_status(status)
53
53
  @request_method = request_method
54
54
  @request_path = request_path
55
55
  @request_headers = request_headers
@@ -107,6 +107,38 @@ module Appwrite
107
107
  "scheduledAt": @scheduled_at
108
108
  }
109
109
  end
110
+
111
+ private
112
+
113
+ def validate_trigger(trigger)
114
+ valid_trigger = [
115
+ Appwrite::Enums::ExecutionTrigger::HTTP,
116
+ Appwrite::Enums::ExecutionTrigger::SCHEDULE,
117
+ Appwrite::Enums::ExecutionTrigger::EVENT,
118
+ ]
119
+
120
+ unless valid_trigger.include?(trigger)
121
+ raise ArgumentError, "Invalid " + trigger + ". Must be one of: " + valid_trigger.join(', ')
122
+ end
123
+
124
+ trigger
125
+ end
126
+
127
+ def validate_status(status)
128
+ valid_status = [
129
+ Appwrite::Enums::ExecutionStatus::WAITING,
130
+ Appwrite::Enums::ExecutionStatus::PROCESSING,
131
+ Appwrite::Enums::ExecutionStatus::COMPLETED,
132
+ Appwrite::Enums::ExecutionStatus::FAILED,
133
+ ]
134
+
135
+ unless valid_status.include?(status)
136
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
137
+ end
138
+
139
+ status
140
+ end
141
+
110
142
  end
111
143
  end
112
144
  end
@@ -11,7 +11,7 @@ module Appwrite
11
11
  status:
12
12
  )
13
13
  @version = version
14
- @status = status
14
+ @status = validate_status(status)
15
15
  end
16
16
 
17
17
  def self.from(map:)
@@ -27,6 +27,23 @@ module Appwrite
27
27
  "status": @status
28
28
  }
29
29
  end
30
+
31
+ private
32
+
33
+ def validate_status(status)
34
+ valid_status = [
35
+ Appwrite::Enums::HealthAntivirusStatus::DISABLED,
36
+ Appwrite::Enums::HealthAntivirusStatus::OFFLINE,
37
+ Appwrite::Enums::HealthAntivirusStatus::ONLINE,
38
+ ]
39
+
40
+ unless valid_status.include?(status)
41
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
42
+ end
43
+
44
+ status
45
+ end
46
+
30
47
  end
31
48
  end
32
49
  end
@@ -14,7 +14,7 @@ module Appwrite
14
14
  )
15
15
  @name = name
16
16
  @ping = ping
17
- @status = status
17
+ @status = validate_status(status)
18
18
  end
19
19
 
20
20
  def self.from(map:)
@@ -32,6 +32,22 @@ module Appwrite
32
32
  "status": @status
33
33
  }
34
34
  end
35
+
36
+ private
37
+
38
+ def validate_status(status)
39
+ valid_status = [
40
+ Appwrite::Enums::HealthCheckStatus::PASS,
41
+ Appwrite::Enums::HealthCheckStatus::FAIL,
42
+ ]
43
+
44
+ unless valid_status.include?(status)
45
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
46
+ end
47
+
48
+ status
49
+ end
50
+
35
51
  end
36
52
  end
37
53
  end
@@ -31,7 +31,7 @@ module Appwrite
31
31
  @updated_at = updated_at
32
32
  @key = key
33
33
  @type = type
34
- @status = status
34
+ @status = validate_status(status)
35
35
  @error = error
36
36
  @attributes = attributes
37
37
  @lengths = lengths
@@ -67,6 +67,25 @@ module Appwrite
67
67
  "orders": @orders
68
68
  }
69
69
  end
70
+
71
+ private
72
+
73
+ def validate_status(status)
74
+ valid_status = [
75
+ Appwrite::Enums::IndexStatus::AVAILABLE,
76
+ Appwrite::Enums::IndexStatus::PROCESSING,
77
+ Appwrite::Enums::IndexStatus::DELETING,
78
+ Appwrite::Enums::IndexStatus::STUCK,
79
+ Appwrite::Enums::IndexStatus::FAILED,
80
+ ]
81
+
82
+ unless valid_status.include?(status)
83
+ raise ArgumentError, "Invalid " + status + ". Must be one of: " + valid_status.join(', ')
84
+ end
85
+
86
+ status
87
+ end
88
+
70
89
  end
71
90
  end
72
91
  end