mailosaur 7.17.0 → 8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4e9715da4f69e6078392f4846fe8f85228b1cb0c8efd32f75ab5262ad0b7510
4
- data.tar.gz: 42afb8a6023e449b90e4cb5c185ba02564b307460cdac6082edac492250ebc07
3
+ metadata.gz: 674d6a0fc698cb9f2e2e94de63b60ebd2e7af23b676b285e939f7128277ed815
4
+ data.tar.gz: e32afa6f593799fb13873b8c4e1c53b6aaaa2803b9a9269f42680b1308b5665f
5
5
  SHA512:
6
- metadata.gz: 4d439710cbb8ee21bc8956f6f9b14222e76ab9132e0826bfd4fb612934f3e45059ef3bdadead642c7689af76e3af8849f5f3ed2d4ba4c562e21967d7951f2c0b
7
- data.tar.gz: 9300b227579346522080db84cfa5483f8662af6f288bed790025e0f50e5e4d547a58984132c0d9742f6e3ecbe8a9d75723a1a115e13e1e72fa4b18480a05588b
6
+ metadata.gz: fe6f0bdaff74715b4f2ca3962673036e23f406aa06d990b471f9617c7ce99b63ac26ffc5adaa1a34c4c8b908045b7ab8a4aff3cae156b9679c3b69fd03bbdb98
7
+ data.tar.gz: 7204f062d34fa6c35f4219f293a6cfa5b50f03fecd31d9cc54da5dedda1e91c653dd0da19f9f87f5121ca5bd7cd6e27986517db7e999d7391c9038cdb01cd19b
@@ -55,9 +55,31 @@ module Mailosaur
55
55
  # @return [NOT_IMPLEMENTED] operation results.
56
56
  #
57
57
  def get_preview(id)
58
- response = conn.get "api/files/previews/#{id}"
59
- @handle_http_error.call(response) unless response.status == 200
60
- response.body
58
+ timeout = 120_000
59
+ poll_count = 0
60
+ start_time = Time.now.to_f
61
+
62
+ loop do
63
+ response = conn.get "api/files/screenshots/#{id}"
64
+
65
+ return response.body if response.status == 200
66
+
67
+ @handle_http_error.call(response) unless response.status == 202
68
+
69
+ delay_pattern = (response.headers['x-ms-delay'] || '1000').split(',').map(&:to_i)
70
+
71
+ delay = poll_count >= delay_pattern.length ? delay_pattern[delay_pattern.length - 1] : delay_pattern[poll_count]
72
+
73
+ poll_count += 1
74
+
75
+ ## Stop if timeout will be exceeded
76
+ if ((1000 * (Time.now.to_f - start_time).to_i) + delay) > timeout
77
+ msg = format('An email preview was not generated in time. The email client may not be available, or the preview ID [%s] may be incorrect.', id)
78
+ raise Mailosaur::MailosaurError.new(msg, 'preview_timeout')
79
+ end
80
+
81
+ sleep(delay / 1000.0)
82
+ end
61
83
  end
62
84
  end
63
85
  end
@@ -248,7 +248,7 @@ module Mailosaur
248
248
  # @return [PreviewListResult] operation result.
249
249
  #
250
250
  def generate_previews(id, options)
251
- response = conn.post "api/messages/#{id}/previews", options.to_json
251
+ response = conn.post "api/messages/#{id}/screenshots", options.to_json
252
252
  @handle_http_error.call(response) unless response.status == 200
253
253
  model = JSON.parse(response.body)
254
254
  Mailosaur::Models::PreviewListResult.new(model)
@@ -0,0 +1,16 @@
1
+ module Mailosaur
2
+ module Models
3
+ class EmailClient < BaseModel
4
+ def initialize(data = {})
5
+ @label = data['label']
6
+ @name = data['name']
7
+ end
8
+
9
+ # @return [String] The unique email client label. Used when generating email preview requests.
10
+ attr_accessor :label
11
+
12
+ # @return [String] The display name of the email client.
13
+ attr_accessor :name
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ module Mailosaur
2
+ module Models
3
+ class EmailClientListResult < BaseModel
4
+ def initialize(data = {})
5
+ @items = []
6
+ (data['items'] || []).each { |i| @items << Mailosaur::Models::EmailClient.new(i) }
7
+ end
8
+
9
+ # @return [Array<EmailClient>] A list of available email clients with which to generate email previews.
10
+ attr_accessor :items
11
+ end
12
+ end
13
+ end
@@ -1,12 +1,12 @@
1
1
  module Mailosaur
2
2
  module Models
3
3
  class PreviewRequestOptions < BaseModel
4
- def initialize(previews)
5
- @previews = previews
4
+ def initialize(email_clients)
5
+ @email_clients = email_clients
6
6
  end
7
7
 
8
- # @return [PreviewRequest] The list of email preview requests.
9
- attr_accessor :previews
8
+ # @return [Array<String>] The list email clients to generate previews with.
9
+ attr_accessor :email_clients
10
10
  end
11
11
  end
12
12
  end
@@ -17,13 +17,13 @@ module Mailosaur
17
17
  #
18
18
  # Returns a list of available email clients.
19
19
  #
20
- # @return [PreviewEmailClientListResult] operation results.
20
+ # @return [EmailClientListResult] operation results.
21
21
  #
22
22
  def list_email_clients
23
- response = conn.get 'api/previews/clients'
23
+ response = conn.get 'api/screenshots/clients'
24
24
  @handle_http_error.call(response) unless response.status == 200
25
25
  model = JSON.parse(response.body)
26
- Mailosaur::Models::PreviewEmailClientListResult.new(model)
26
+ Mailosaur::Models::EmailClientListResult.new(model)
27
27
  end
28
28
  end
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module Mailosaur
2
- VERSION = '7.17.0'.freeze
2
+ VERSION = '8.0.0'.freeze
3
3
  end
data/lib/mailosaur.rb CHANGED
@@ -55,10 +55,9 @@ module Mailosaur
55
55
  autoload :DeviceCreateOptions, 'Mailosaur/models/device_create_options.rb'
56
56
  autoload :OtpResult, 'Mailosaur/models/otp_result.rb'
57
57
  autoload :Preview, 'Mailosaur/models/preview.rb'
58
- autoload :PreviewEmailClient, 'Mailosaur/models/preview_email_client.rb'
59
- autoload :PreviewEmailClientListResult, 'Mailosaur/models/preview_email_client_list_result.rb'
58
+ autoload :EmailClient, 'Mailosaur/models/email_client.rb'
59
+ autoload :EmailClientListResult, 'Mailosaur/models/email_client_list_result.rb'
60
60
  autoload :PreviewListResult, 'Mailosaur/models/preview_list_result.rb'
61
- autoload :PreviewRequest, 'Mailosaur/models/preview_request.rb'
62
61
  autoload :PreviewRequestOptions, 'Mailosaur/models/preview_request_options.rb'
63
62
  autoload :BaseModel, 'Mailosaur/models/base_model.rb'
64
63
  end
@@ -148,6 +147,8 @@ module Mailosaur
148
147
  raise Mailosaur::MailosaurError.new('Insufficient permission to perform that task.', 'permission_error', response.status, response.body)
149
148
  when 404
150
149
  raise Mailosaur::MailosaurError.new('Not found, check input parameters.', 'invalid_request', response.status, response.body)
150
+ when 410
151
+ raise Mailosaur::MailosaurError.new('Permanently expired or deleted.', 'gone', response.status, response.body)
151
152
  else
152
153
  raise Mailosaur::MailosaurError.new('An API error occurred, see httpResponse for further information.', 'api_error', response.status, response.body)
153
154
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailosaur
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.17.0
4
+ version: 8.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mailosaur
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-01-02 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: faraday
@@ -157,6 +156,8 @@ files:
157
156
  - lib/Mailosaur/models/device_list_result.rb
158
157
  - lib/Mailosaur/models/dns_records.rb
159
158
  - lib/Mailosaur/models/email_authentication_result.rb
159
+ - lib/Mailosaur/models/email_client.rb
160
+ - lib/Mailosaur/models/email_client_list_result.rb
160
161
  - lib/Mailosaur/models/image.rb
161
162
  - lib/Mailosaur/models/link.rb
162
163
  - lib/Mailosaur/models/message.rb
@@ -171,10 +172,7 @@ files:
171
172
  - lib/Mailosaur/models/metadata.rb
172
173
  - lib/Mailosaur/models/otp_result.rb
173
174
  - lib/Mailosaur/models/preview.rb
174
- - lib/Mailosaur/models/preview_email_client.rb
175
- - lib/Mailosaur/models/preview_email_client_list_result.rb
176
175
  - lib/Mailosaur/models/preview_list_result.rb
177
- - lib/Mailosaur/models/preview_request.rb
178
176
  - lib/Mailosaur/models/preview_request_options.rb
179
177
  - lib/Mailosaur/models/search_criteria.rb
180
178
  - lib/Mailosaur/models/server.rb
@@ -203,7 +201,6 @@ metadata:
203
201
  github_repo: ssh://github.com/mailosaur/mailosaur-ruby
204
202
  homepage_uri: https://mailosaur.com/
205
203
  source_code_uri: https://github.com/mailosaur/mailosaur-ruby
206
- post_install_message:
207
204
  rdoc_options: []
208
205
  require_paths:
209
206
  - lib
@@ -218,8 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
215
  - !ruby/object:Gem::Version
219
216
  version: '0'
220
217
  requirements: []
221
- rubygems_version: 3.4.19
222
- signing_key:
218
+ rubygems_version: 3.6.9
223
219
  specification_version: 4
224
220
  summary: The Mailosaur Ruby library
225
221
  test_files: []
@@ -1,36 +0,0 @@
1
- module Mailosaur
2
- module Models
3
- class PreviewEmailClient < BaseModel
4
- def initialize(data = {})
5
- @id = data['id']
6
- @name = data['name']
7
- @platform_group = data['platformGroup']
8
- @platform_type = data['platformType']
9
- @platform_version = data['platformVersion']
10
- @can_disable_images = data['canDisableImages']
11
- @status = data['status']
12
- end
13
-
14
- # @return [String] Unique identifier for the email preview.
15
- attr_accessor :id
16
-
17
- # @return [String] The display name of the email client.
18
- attr_accessor :name
19
-
20
- # @return [String] Whether the platform is desktop, mobile, or web-based.
21
- attr_accessor :platform_group
22
-
23
- # @return [String] The type of platform on which the email client is running.
24
- attr_accessor :platform_type
25
-
26
- # @return [String] The platform version number.
27
- attr_accessor :platform_version
28
-
29
- # @return [Boolean] If true, images can be disabled when generating previews.
30
- attr_accessor :can_disable_images
31
-
32
- # @return [String] The current status of the email client.
33
- attr_accessor :status
34
- end
35
- end
36
- end
@@ -1,14 +0,0 @@
1
- module Mailosaur
2
- module Models
3
- class PreviewEmailClientListResult < BaseModel
4
- def initialize(data = {})
5
- @items = []
6
- (data['items'] || []).each { |i| @items << Mailosaur::Models::PreviewEmailClient.new(i) }
7
- end
8
-
9
- # @return [Array<PreviewEmailClient>] A list of available email clients with which to generate email previews.
10
- # A list of available email clients.
11
- attr_accessor :items
12
- end
13
- end
14
- end
@@ -1,16 +0,0 @@
1
- module Mailosaur
2
- module Models
3
- class PreviewRequest < BaseModel
4
- def initialize(email_client, disable_images: false)
5
- @email_client = email_client
6
- @disable_images = disable_images
7
- end
8
-
9
- # @return [String] The email client the preview was generated with.
10
- attr_accessor :email_client
11
-
12
- # @return [Boolean] True if images were disabled in the preview.
13
- attr_accessor :disable_images
14
- end
15
- end
16
- end