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.
@@ -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
 
@@ -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
@@ -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 [Output] output Output format type (jpeg, jpg, png, gif and webp).
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)