appwrite 20.1.0 → 21.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.
- checksums.yaml +4 -4
- data/lib/appwrite/client.rb +1 -2
- data/lib/appwrite/enums/browser_permission.rb +26 -0
- data/lib/appwrite/enums/deployment_status.rb +1 -0
- data/lib/appwrite/enums/name.rb +1 -0
- data/lib/appwrite/enums/o_auth_provider.rb +0 -1
- data/lib/appwrite/enums/order_by.rb +8 -0
- data/lib/appwrite/enums/roles.rb +9 -0
- data/lib/appwrite/enums/scopes.rb +61 -0
- data/lib/appwrite/models/attribute_longtext.rb +86 -0
- data/lib/appwrite/models/attribute_mediumtext.rb +86 -0
- data/lib/appwrite/models/attribute_text.rb +86 -0
- data/lib/appwrite/models/attribute_varchar.rb +91 -0
- data/lib/appwrite/models/bucket.rb +8 -3
- data/lib/appwrite/models/column_longtext.rb +86 -0
- data/lib/appwrite/models/column_mediumtext.rb +86 -0
- data/lib/appwrite/models/column_text.rb +86 -0
- data/lib/appwrite/models/column_varchar.rb +91 -0
- data/lib/appwrite/models/deployment.rb +1 -0
- data/lib/appwrite/models/file.rb +13 -3
- data/lib/appwrite/models/health_status_list.rb +32 -0
- data/lib/appwrite/query.rb +34 -0
- data/lib/appwrite/services/account.rb +3 -1
- data/lib/appwrite/services/avatars.rb +1 -1
- data/lib/appwrite/services/databases.rb +448 -15
- data/lib/appwrite/services/health.rb +31 -6
- data/lib/appwrite/services/storage.rb +6 -6
- data/lib/appwrite/services/tables_db.rb +453 -10
- data/lib/appwrite.rb +14 -2
- metadata +17 -5
- data/lib/appwrite/enums/output.rb +0 -13
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Appwrite
|
|
4
|
+
module Models
|
|
5
|
+
class ColumnMediumtext
|
|
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 :default
|
|
15
|
+
|
|
16
|
+
def initialize(
|
|
17
|
+
key:,
|
|
18
|
+
type:,
|
|
19
|
+
status:,
|
|
20
|
+
error:,
|
|
21
|
+
required:,
|
|
22
|
+
array: ,
|
|
23
|
+
created_at:,
|
|
24
|
+
updated_at:,
|
|
25
|
+
default:
|
|
26
|
+
)
|
|
27
|
+
@key = key
|
|
28
|
+
@type = type
|
|
29
|
+
@status = validate_status(status)
|
|
30
|
+
@error = error
|
|
31
|
+
@required = required
|
|
32
|
+
@array = array
|
|
33
|
+
@created_at = created_at
|
|
34
|
+
@updated_at = updated_at
|
|
35
|
+
@default = default
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.from(map:)
|
|
39
|
+
ColumnMediumtext.new(
|
|
40
|
+
key: map["key"],
|
|
41
|
+
type: map["type"],
|
|
42
|
+
status: map["status"],
|
|
43
|
+
error: map["error"],
|
|
44
|
+
required: map["required"],
|
|
45
|
+
array: map["array"],
|
|
46
|
+
created_at: map["$createdAt"],
|
|
47
|
+
updated_at: map["$updatedAt"],
|
|
48
|
+
default: map["default"]
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def to_map
|
|
53
|
+
{
|
|
54
|
+
"key": @key,
|
|
55
|
+
"type": @type,
|
|
56
|
+
"status": @status,
|
|
57
|
+
"error": @error,
|
|
58
|
+
"required": @required,
|
|
59
|
+
"array": @array,
|
|
60
|
+
"$createdAt": @created_at,
|
|
61
|
+
"$updatedAt": @updated_at,
|
|
62
|
+
"default": @default
|
|
63
|
+
}
|
|
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
|
+
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Appwrite
|
|
4
|
+
module Models
|
|
5
|
+
class ColumnText
|
|
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 :default
|
|
15
|
+
|
|
16
|
+
def initialize(
|
|
17
|
+
key:,
|
|
18
|
+
type:,
|
|
19
|
+
status:,
|
|
20
|
+
error:,
|
|
21
|
+
required:,
|
|
22
|
+
array: ,
|
|
23
|
+
created_at:,
|
|
24
|
+
updated_at:,
|
|
25
|
+
default:
|
|
26
|
+
)
|
|
27
|
+
@key = key
|
|
28
|
+
@type = type
|
|
29
|
+
@status = validate_status(status)
|
|
30
|
+
@error = error
|
|
31
|
+
@required = required
|
|
32
|
+
@array = array
|
|
33
|
+
@created_at = created_at
|
|
34
|
+
@updated_at = updated_at
|
|
35
|
+
@default = default
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.from(map:)
|
|
39
|
+
ColumnText.new(
|
|
40
|
+
key: map["key"],
|
|
41
|
+
type: map["type"],
|
|
42
|
+
status: map["status"],
|
|
43
|
+
error: map["error"],
|
|
44
|
+
required: map["required"],
|
|
45
|
+
array: map["array"],
|
|
46
|
+
created_at: map["$createdAt"],
|
|
47
|
+
updated_at: map["$updatedAt"],
|
|
48
|
+
default: map["default"]
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def to_map
|
|
53
|
+
{
|
|
54
|
+
"key": @key,
|
|
55
|
+
"type": @type,
|
|
56
|
+
"status": @status,
|
|
57
|
+
"error": @error,
|
|
58
|
+
"required": @required,
|
|
59
|
+
"array": @array,
|
|
60
|
+
"$createdAt": @created_at,
|
|
61
|
+
"$updatedAt": @updated_at,
|
|
62
|
+
"default": @default
|
|
63
|
+
}
|
|
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
|
+
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Appwrite
|
|
4
|
+
module Models
|
|
5
|
+
class ColumnVarchar
|
|
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 :size
|
|
15
|
+
attr_reader :default
|
|
16
|
+
|
|
17
|
+
def initialize(
|
|
18
|
+
key:,
|
|
19
|
+
type:,
|
|
20
|
+
status:,
|
|
21
|
+
error:,
|
|
22
|
+
required:,
|
|
23
|
+
array: ,
|
|
24
|
+
created_at:,
|
|
25
|
+
updated_at:,
|
|
26
|
+
size:,
|
|
27
|
+
default:
|
|
28
|
+
)
|
|
29
|
+
@key = key
|
|
30
|
+
@type = type
|
|
31
|
+
@status = validate_status(status)
|
|
32
|
+
@error = error
|
|
33
|
+
@required = required
|
|
34
|
+
@array = array
|
|
35
|
+
@created_at = created_at
|
|
36
|
+
@updated_at = updated_at
|
|
37
|
+
@size = size
|
|
38
|
+
@default = default
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.from(map:)
|
|
42
|
+
ColumnVarchar.new(
|
|
43
|
+
key: map["key"],
|
|
44
|
+
type: map["type"],
|
|
45
|
+
status: map["status"],
|
|
46
|
+
error: map["error"],
|
|
47
|
+
required: map["required"],
|
|
48
|
+
array: map["array"],
|
|
49
|
+
created_at: map["$createdAt"],
|
|
50
|
+
updated_at: map["$updatedAt"],
|
|
51
|
+
size: map["size"],
|
|
52
|
+
default: map["default"]
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def to_map
|
|
57
|
+
{
|
|
58
|
+
"key": @key,
|
|
59
|
+
"type": @type,
|
|
60
|
+
"status": @status,
|
|
61
|
+
"error": @error,
|
|
62
|
+
"required": @required,
|
|
63
|
+
"array": @array,
|
|
64
|
+
"$createdAt": @created_at,
|
|
65
|
+
"$updatedAt": @updated_at,
|
|
66
|
+
"size": @size,
|
|
67
|
+
"default": @default
|
|
68
|
+
}
|
|
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
|
+
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -161,6 +161,7 @@ module Appwrite
|
|
|
161
161
|
Appwrite::Enums::DeploymentStatus::PROCESSING,
|
|
162
162
|
Appwrite::Enums::DeploymentStatus::BUILDING,
|
|
163
163
|
Appwrite::Enums::DeploymentStatus::READY,
|
|
164
|
+
Appwrite::Enums::DeploymentStatus::CANCELED,
|
|
164
165
|
Appwrite::Enums::DeploymentStatus::FAILED,
|
|
165
166
|
]
|
|
166
167
|
|
data/lib/appwrite/models/file.rb
CHANGED
|
@@ -14,6 +14,8 @@ module Appwrite
|
|
|
14
14
|
attr_reader :size_original
|
|
15
15
|
attr_reader :chunks_total
|
|
16
16
|
attr_reader :chunks_uploaded
|
|
17
|
+
attr_reader :encryption
|
|
18
|
+
attr_reader :compression
|
|
17
19
|
|
|
18
20
|
def initialize(
|
|
19
21
|
id:,
|
|
@@ -26,7 +28,9 @@ module Appwrite
|
|
|
26
28
|
mime_type:,
|
|
27
29
|
size_original:,
|
|
28
30
|
chunks_total:,
|
|
29
|
-
chunks_uploaded
|
|
31
|
+
chunks_uploaded:,
|
|
32
|
+
encryption:,
|
|
33
|
+
compression:
|
|
30
34
|
)
|
|
31
35
|
@id = id
|
|
32
36
|
@bucket_id = bucket_id
|
|
@@ -39,6 +43,8 @@ module Appwrite
|
|
|
39
43
|
@size_original = size_original
|
|
40
44
|
@chunks_total = chunks_total
|
|
41
45
|
@chunks_uploaded = chunks_uploaded
|
|
46
|
+
@encryption = encryption
|
|
47
|
+
@compression = compression
|
|
42
48
|
end
|
|
43
49
|
|
|
44
50
|
def self.from(map:)
|
|
@@ -53,7 +59,9 @@ module Appwrite
|
|
|
53
59
|
mime_type: map["mimeType"],
|
|
54
60
|
size_original: map["sizeOriginal"],
|
|
55
61
|
chunks_total: map["chunksTotal"],
|
|
56
|
-
chunks_uploaded: map["chunksUploaded"]
|
|
62
|
+
chunks_uploaded: map["chunksUploaded"],
|
|
63
|
+
encryption: map["encryption"],
|
|
64
|
+
compression: map["compression"]
|
|
57
65
|
)
|
|
58
66
|
end
|
|
59
67
|
|
|
@@ -69,7 +77,9 @@ module Appwrite
|
|
|
69
77
|
"mimeType": @mime_type,
|
|
70
78
|
"sizeOriginal": @size_original,
|
|
71
79
|
"chunksTotal": @chunks_total,
|
|
72
|
-
"chunksUploaded": @chunks_uploaded
|
|
80
|
+
"chunksUploaded": @chunks_uploaded,
|
|
81
|
+
"encryption": @encryption,
|
|
82
|
+
"compression": @compression
|
|
73
83
|
}
|
|
74
84
|
end
|
|
75
85
|
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Appwrite
|
|
4
|
+
module Models
|
|
5
|
+
class HealthStatusList
|
|
6
|
+
attr_reader :total
|
|
7
|
+
attr_reader :statuses
|
|
8
|
+
|
|
9
|
+
def initialize(
|
|
10
|
+
total:,
|
|
11
|
+
statuses:
|
|
12
|
+
)
|
|
13
|
+
@total = total
|
|
14
|
+
@statuses = statuses
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.from(map:)
|
|
18
|
+
HealthStatusList.new(
|
|
19
|
+
total: map["total"],
|
|
20
|
+
statuses: map["statuses"].map { |it| HealthStatus.from(map: it) }
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_map
|
|
25
|
+
{
|
|
26
|
+
"total": @total,
|
|
27
|
+
"statuses": @statuses.map { |it| it.to_map }
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
data/lib/appwrite/query.rb
CHANGED
|
@@ -36,6 +36,15 @@ module Appwrite
|
|
|
36
36
|
return Query.new("notEqual", attribute, value).to_s
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
+
# Filter resources where attribute matches a regular expression pattern.
|
|
40
|
+
#
|
|
41
|
+
# @param attribute [String] The attribute to filter on.
|
|
42
|
+
# @param pattern [String] The regular expression pattern to match.
|
|
43
|
+
# @return [String] The query string.
|
|
44
|
+
def regex(attribute, pattern)
|
|
45
|
+
return Query.new("regex", attribute, pattern).to_s
|
|
46
|
+
end
|
|
47
|
+
|
|
39
48
|
def less_than(attribute, value)
|
|
40
49
|
return Query.new("lessThan", attribute, value).to_s
|
|
41
50
|
end
|
|
@@ -60,6 +69,22 @@ module Appwrite
|
|
|
60
69
|
return Query.new("isNotNull", attribute, nil).to_s
|
|
61
70
|
end
|
|
62
71
|
|
|
72
|
+
# Filter resources where the specified attributes exist.
|
|
73
|
+
#
|
|
74
|
+
# @param attributes [Array<String>] The list of attributes that must exist.
|
|
75
|
+
# @return [String] The query string.
|
|
76
|
+
def exists(attributes)
|
|
77
|
+
return Query.new("exists", nil, attributes).to_s
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Filter resources where the specified attributes do not exist.
|
|
81
|
+
#
|
|
82
|
+
# @param attributes [Array<String>] The list of attributes that must not exist.
|
|
83
|
+
# @return [String] The query string.
|
|
84
|
+
def not_exists(attributes)
|
|
85
|
+
return Query.new("notExists", nil, attributes).to_s
|
|
86
|
+
end
|
|
87
|
+
|
|
63
88
|
def between(attribute, start, ending)
|
|
64
89
|
return Query.new("between", attribute, [start, ending]).to_s
|
|
65
90
|
end
|
|
@@ -164,6 +189,15 @@ module Appwrite
|
|
|
164
189
|
return Query.new("and", nil, queries.map { |query| JSON.parse(query) }).to_s
|
|
165
190
|
end
|
|
166
191
|
|
|
192
|
+
# Filter array elements where at least one element matches all the specified queries.
|
|
193
|
+
#
|
|
194
|
+
# @param attribute [String] The attribute containing the array to filter on.
|
|
195
|
+
# @param queries [Array<String>] The list of query strings to match against array elements.
|
|
196
|
+
# @return [String] The query string.
|
|
197
|
+
def elem_match(attribute, queries)
|
|
198
|
+
return Query.new("elemMatch", attribute, queries.map { |query| JSON.parse(query) }).to_s
|
|
199
|
+
end
|
|
200
|
+
|
|
167
201
|
def distance_equal(attribute, values, distance, meters = true)
|
|
168
202
|
return Query.new("distanceEqual", attribute, [[values, distance, meters]]).to_s
|
|
169
203
|
end
|
|
@@ -180,12 +180,14 @@ module Appwrite
|
|
|
180
180
|
# from its creation and will be invalid if the user will logout in that time
|
|
181
181
|
# frame.
|
|
182
182
|
#
|
|
183
|
+
# @param [Integer] duration Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.
|
|
183
184
|
#
|
|
184
185
|
# @return [Jwt]
|
|
185
|
-
def create_jwt()
|
|
186
|
+
def create_jwt(duration: nil)
|
|
186
187
|
api_path = '/account/jwts'
|
|
187
188
|
|
|
188
189
|
api_params = {
|
|
190
|
+
duration: duration,
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
api_headers = {
|
|
@@ -312,7 +312,7 @@ module Appwrite
|
|
|
312
312
|
# @param [Integer] width Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).
|
|
313
313
|
# @param [Integer] height Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).
|
|
314
314
|
# @param [Integer] quality Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.
|
|
315
|
-
# @param [
|
|
315
|
+
# @param [ImageFormat] output Output format type (jpeg, jpg, png, gif and webp).
|
|
316
316
|
#
|
|
317
317
|
# @return []
|
|
318
318
|
def get_screenshot(url:, headers: nil, viewport_width: nil, viewport_height: nil, scale: nil, theme: nil, user_agent: nil, fullpage: nil, locale: nil, timezone: nil, latitude: nil, longitude: nil, accuracy: nil, touch: nil, permissions: nil, sleep: nil, width: nil, height: nil, quality: nil, output: nil)
|