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 +4 -4
- data/lib/Mailosaur/files.rb +25 -3
- data/lib/Mailosaur/messages.rb +1 -1
- data/lib/Mailosaur/models/email_client.rb +16 -0
- data/lib/Mailosaur/models/email_client_list_result.rb +13 -0
- data/lib/Mailosaur/models/preview_request_options.rb +4 -4
- data/lib/Mailosaur/previews.rb +3 -3
- data/lib/Mailosaur/version.rb +1 -1
- data/lib/mailosaur.rb +4 -3
- metadata +5 -9
- data/lib/Mailosaur/models/preview_email_client.rb +0 -36
- data/lib/Mailosaur/models/preview_email_client_list_result.rb +0 -14
- data/lib/Mailosaur/models/preview_request.rb +0 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 674d6a0fc698cb9f2e2e94de63b60ebd2e7af23b676b285e939f7128277ed815
|
|
4
|
+
data.tar.gz: e32afa6f593799fb13873b8c4e1c53b6aaaa2803b9a9269f42680b1308b5665f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fe6f0bdaff74715b4f2ca3962673036e23f406aa06d990b471f9617c7ce99b63ac26ffc5adaa1a34c4c8b908045b7ab8a4aff3cae156b9679c3b69fd03bbdb98
|
|
7
|
+
data.tar.gz: 7204f062d34fa6c35f4219f293a6cfa5b50f03fecd31d9cc54da5dedda1e91c653dd0da19f9f87f5121ca5bd7cd6e27986517db7e999d7391c9038cdb01cd19b
|
data/lib/Mailosaur/files.rb
CHANGED
|
@@ -55,9 +55,31 @@ module Mailosaur
|
|
|
55
55
|
# @return [NOT_IMPLEMENTED] operation results.
|
|
56
56
|
#
|
|
57
57
|
def get_preview(id)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
data/lib/Mailosaur/messages.rb
CHANGED
|
@@ -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}/
|
|
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(
|
|
5
|
-
@
|
|
4
|
+
def initialize(email_clients)
|
|
5
|
+
@email_clients = email_clients
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
# @return [
|
|
9
|
-
attr_accessor :
|
|
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
|
data/lib/Mailosaur/previews.rb
CHANGED
|
@@ -17,13 +17,13 @@ module Mailosaur
|
|
|
17
17
|
#
|
|
18
18
|
# Returns a list of available email clients.
|
|
19
19
|
#
|
|
20
|
-
# @return [
|
|
20
|
+
# @return [EmailClientListResult] operation results.
|
|
21
21
|
#
|
|
22
22
|
def list_email_clients
|
|
23
|
-
response = conn.get 'api/
|
|
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::
|
|
26
|
+
Mailosaur::Models::EmailClientListResult.new(model)
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
end
|
data/lib/Mailosaur/version.rb
CHANGED
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 :
|
|
59
|
-
autoload :
|
|
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:
|
|
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:
|
|
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.
|
|
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
|