mailosaur 7.11.0 → 7.13.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 +16 -0
- data/lib/Mailosaur/messages.rb +29 -4
- data/lib/Mailosaur/models/message.rb +9 -5
- data/lib/Mailosaur/models/message_summary.rb +8 -4
- data/lib/Mailosaur/models/preview.rb +20 -0
- data/lib/Mailosaur/models/preview_email_client.rb +36 -0
- data/lib/Mailosaur/models/preview_email_client_list_result.rb +14 -0
- data/lib/Mailosaur/models/preview_list_result.rb +14 -0
- data/lib/Mailosaur/models/preview_request.rb +16 -0
- data/lib/Mailosaur/models/preview_request_options.rb +12 -0
- data/lib/Mailosaur/previews.rb +29 -0
- data/lib/Mailosaur/version.rb +1 -1
- data/lib/mailosaur.rb +13 -1
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c417909e984bf0a87b874005ad64189ad558f7d84c684fb611f67acbb65e4c0
|
4
|
+
data.tar.gz: 14b33b02313b33441b8b81a38b20a076a4f4d4f3cf9d75c10bf647e19e7f9225
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3ee70bc3325a97b85affc84f2ed0e72ed6e7ec02bb684fed6894d88ad4a4b74b46e593ac07b6a6ba6e3a1458ef76576cfb715096c04f971a0c2c45a336bf355
|
7
|
+
data.tar.gz: e35f4d3da9895285738241c72f8aa0b40b7da76ed298f83cae7a007222386ec20bdaee136f4c3658f94823786568dc553db05418f8a4da56627fb14bb8412290
|
data/lib/Mailosaur/files.rb
CHANGED
@@ -43,5 +43,21 @@ module Mailosaur
|
|
43
43
|
@handle_http_error.call(response) unless response.status == 200
|
44
44
|
response.body
|
45
45
|
end
|
46
|
+
|
47
|
+
#
|
48
|
+
# Download an email preview
|
49
|
+
#
|
50
|
+
# Downloads a screenshot of your email rendered in a real email client. Simply supply
|
51
|
+
# the unique identifier for the required preview.
|
52
|
+
#
|
53
|
+
# @param id The identifier of the email preview to be downloaded.
|
54
|
+
#
|
55
|
+
# @return [NOT_IMPLEMENTED] operation results.
|
56
|
+
#
|
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
|
61
|
+
end
|
46
62
|
end
|
47
63
|
end
|
data/lib/Mailosaur/messages.rb
CHANGED
@@ -27,14 +27,16 @@ module Mailosaur
|
|
27
27
|
# (in milliseconds).
|
28
28
|
# @param received_after [DateTime] Limits results to only messages received
|
29
29
|
# after this date/time.
|
30
|
+
# @param dir [String] Optionally limits results based on the direction (`Sent`
|
31
|
+
# or `Received`), with the default being `Received`.
|
30
32
|
#
|
31
33
|
# @return [Message] operation results.
|
32
34
|
#
|
33
|
-
def get(server, criteria, timeout: 10_000, received_after: DateTime.now - (1.0 / 24))
|
35
|
+
def get(server, criteria, timeout: 10_000, received_after: DateTime.now - (1.0 / 24), dir: nil)
|
34
36
|
# Defaults timeout to 10s, receivedAfter to 1h
|
35
37
|
raise Mailosaur::MailosaurError.new('Must provide a valid Server ID.', 'invalid_request') if server.length != 8
|
36
38
|
|
37
|
-
result = search(server, criteria, page: 0, items_per_page: 1, timeout: timeout, received_after: received_after)
|
39
|
+
result = search(server, criteria, page: 0, items_per_page: 1, timeout: timeout, received_after: received_after, dir: dir)
|
38
40
|
get_by_id(result.items[0].id)
|
39
41
|
end
|
40
42
|
|
@@ -83,14 +85,17 @@ module Mailosaur
|
|
83
85
|
# returned per page. Can be set between 1 and 1000 items, the default is 50.
|
84
86
|
# @param received_after [DateTime] Limits results to only messages received
|
85
87
|
# after this date/time.
|
88
|
+
# @param dir [String] Optionally limits results based on the direction (`Sent`
|
89
|
+
# or `Received`), with the default being `Received`.
|
86
90
|
#
|
87
91
|
# @return [MessageListResult] operation results.
|
88
92
|
#
|
89
|
-
def list(server, page: nil, items_per_page: nil, received_after: nil)
|
93
|
+
def list(server, page: nil, items_per_page: nil, received_after: nil, dir: nil)
|
90
94
|
url = "api/messages?server=#{server}"
|
91
95
|
url += page ? "&page=#{page}" : ''
|
92
96
|
url += items_per_page ? "&itemsPerPage=#{items_per_page}" : ''
|
93
97
|
url += received_after ? "&receivedAfter=#{CGI.escape(received_after.iso8601)}" : ''
|
98
|
+
url += dir ? "&dir=#{dir}" : ''
|
94
99
|
|
95
100
|
response = conn.get url
|
96
101
|
|
@@ -134,14 +139,17 @@ module Mailosaur
|
|
134
139
|
# after this date/time.
|
135
140
|
# @param error_on_timeout [Boolean] When set to false, an error will not be
|
136
141
|
# throw if timeout is reached (default: true).
|
142
|
+
# @param dir [String] Optionally limits results based on the direction (`Sent`
|
143
|
+
# or `Received`), with the default being `Received`.
|
137
144
|
#
|
138
145
|
# @return [MessageListResult] operation results.
|
139
146
|
#
|
140
|
-
def search(server, criteria, page: nil, items_per_page: nil, timeout: nil, received_after: nil, error_on_timeout: true)
|
147
|
+
def search(server, criteria, page: nil, items_per_page: nil, timeout: nil, received_after: nil, error_on_timeout: true, dir: nil)
|
141
148
|
url = "api/messages/search?server=#{server}"
|
142
149
|
url += page ? "&page=#{page}" : ''
|
143
150
|
url += items_per_page ? "&itemsPerPage=#{items_per_page}" : ''
|
144
151
|
url += received_after ? "&receivedAfter=#{CGI.escape(received_after.iso8601)}" : ''
|
152
|
+
url += dir ? "&dir=#{dir}" : ''
|
145
153
|
|
146
154
|
poll_count = 0
|
147
155
|
start_time = Time.now.to_f
|
@@ -226,5 +234,22 @@ module Mailosaur
|
|
226
234
|
model = JSON.parse(response.body)
|
227
235
|
Mailosaur::Models::Message.new(model)
|
228
236
|
end
|
237
|
+
|
238
|
+
#
|
239
|
+
# Generate email previews.
|
240
|
+
#
|
241
|
+
# Generates screenshots of an email rendered in the specified email clients.
|
242
|
+
#
|
243
|
+
# @param id [String] The identifier of the email to preview.
|
244
|
+
# @param options [PreviewRequestOptions] The options with which to generate previews.
|
245
|
+
#
|
246
|
+
# @return [PreviewListResult] operation result.
|
247
|
+
#
|
248
|
+
def generate_previews(id, options)
|
249
|
+
response = conn.post "api/messages/#{id}/previews", options.to_json
|
250
|
+
@handle_http_error.call(response) unless response.status == 200
|
251
|
+
model = JSON.parse(response.body)
|
252
|
+
Mailosaur::Models::PreviewListResult.new(model)
|
253
|
+
end
|
229
254
|
end
|
230
255
|
end
|
@@ -3,20 +3,21 @@ module Mailosaur
|
|
3
3
|
class Message < BaseModel
|
4
4
|
def initialize(data = {})
|
5
5
|
@id = data['id']
|
6
|
+
@type = data['type']
|
6
7
|
@from = []
|
7
|
-
(data['from'] || []).each
|
8
|
+
(data['from'] || []).each { |i| @from << Mailosaur::Models::MessageAddress.new(i) }
|
8
9
|
@to = []
|
9
|
-
(data['to'] || []).each
|
10
|
+
(data['to'] || []).each { |i| @to << Mailosaur::Models::MessageAddress.new(i) }
|
10
11
|
@cc = []
|
11
|
-
(data['cc'] || []).each
|
12
|
+
(data['cc'] || []).each { |i| @cc << Mailosaur::Models::MessageAddress.new(i) }
|
12
13
|
@bcc = []
|
13
|
-
(data['bcc'] || []).each
|
14
|
+
(data['bcc'] || []).each { |i| @bcc << Mailosaur::Models::MessageAddress.new(i) }
|
14
15
|
@received = DateTime.parse(data['received'])
|
15
16
|
@subject = data['subject']
|
16
17
|
@html = Mailosaur::Models::MessageContent.new(data['html'])
|
17
18
|
@text = Mailosaur::Models::MessageContent.new(data['text'])
|
18
19
|
@attachments = []
|
19
|
-
(data['attachments'] || []).each
|
20
|
+
(data['attachments'] || []).each { |i| @attachments << Mailosaur::Models::Attachment.new(i) }
|
20
21
|
@metadata = Mailosaur::Models::Metadata.new(data['metadata'])
|
21
22
|
@server = data['server']
|
22
23
|
end
|
@@ -24,6 +25,9 @@ module Mailosaur
|
|
24
25
|
# @return Unique identifier for the message.
|
25
26
|
attr_accessor :id
|
26
27
|
|
28
|
+
# @return The type of message.
|
29
|
+
attr_accessor :type
|
30
|
+
|
27
31
|
# @return [Array<MessageAddress>] The sender of the message.
|
28
32
|
attr_accessor :from
|
29
33
|
|
@@ -3,15 +3,16 @@ module Mailosaur
|
|
3
3
|
class MessageSummary < BaseModel
|
4
4
|
def initialize(data = {})
|
5
5
|
@id = data['id']
|
6
|
+
@type = data['type']
|
6
7
|
@server = data['server']
|
7
8
|
@from = []
|
8
|
-
(data['from'] || []).each
|
9
|
+
(data['from'] || []).each { |i| @from << Mailosaur::Models::MessageAddress.new(i) }
|
9
10
|
@to = []
|
10
|
-
(data['to'] || []).each
|
11
|
+
(data['to'] || []).each { |i| @to << Mailosaur::Models::MessageAddress.new(i) }
|
11
12
|
@cc = []
|
12
|
-
(data['cc'] || []).each
|
13
|
+
(data['cc'] || []).each { |i| @cc << Mailosaur::Models::MessageAddress.new(i) }
|
13
14
|
@bcc = []
|
14
|
-
(data['bcc'] || []).each
|
15
|
+
(data['bcc'] || []).each { |i| @bcc << Mailosaur::Models::MessageAddress.new(i) }
|
15
16
|
@received = DateTime.parse(data['received'])
|
16
17
|
@subject = data['subject']
|
17
18
|
@summary = data['summary']
|
@@ -21,6 +22,9 @@ module Mailosaur
|
|
21
22
|
# @return
|
22
23
|
attr_accessor :id
|
23
24
|
|
25
|
+
# @return
|
26
|
+
attr_accessor :type
|
27
|
+
|
24
28
|
# @return [String]
|
25
29
|
attr_accessor :server
|
26
30
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Mailosaur
|
2
|
+
module Models
|
3
|
+
class Preview < BaseModel
|
4
|
+
def initialize(data = {})
|
5
|
+
@id = data['id']
|
6
|
+
@email_client = data['emailClient']
|
7
|
+
@disable_images = data['disableImages']
|
8
|
+
end
|
9
|
+
|
10
|
+
# @return [String] Unique identifier for the email preview.
|
11
|
+
attr_accessor :id
|
12
|
+
|
13
|
+
# @return [String] The email client the preview was generated with.
|
14
|
+
attr_accessor :email_client
|
15
|
+
|
16
|
+
# @return [Boolean] True if images were disabled in the preview.
|
17
|
+
attr_accessor :disable_images
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Mailosaur
|
2
|
+
module Models
|
3
|
+
class PreviewEmailClient < BaseModel
|
4
|
+
def initialize(data = {})
|
5
|
+
@id = data['id']
|
6
|
+
@name = data['id']
|
7
|
+
@platform_group = data['id']
|
8
|
+
@platform_type = data['id']
|
9
|
+
@platform_version = data['id']
|
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
|
@@ -0,0 +1,14 @@
|
|
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
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Mailosaur
|
2
|
+
module Models
|
3
|
+
class PreviewListResult < BaseModel
|
4
|
+
def initialize(data = {})
|
5
|
+
@items = []
|
6
|
+
(data['items'] || []).each { |i| @items << Mailosaur::Models::Preview.new(i) }
|
7
|
+
end
|
8
|
+
|
9
|
+
# @return [Array<Preview>] A list of requested email previews.
|
10
|
+
# The summaries for each requested preview.
|
11
|
+
attr_accessor :items
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,16 @@
|
|
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
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Mailosaur
|
2
|
+
class Previews
|
3
|
+
#
|
4
|
+
# Creates and initializes a new instance of the Previews class.
|
5
|
+
# @param client connection.
|
6
|
+
#
|
7
|
+
def initialize(conn, handle_http_error)
|
8
|
+
@conn = conn
|
9
|
+
@handle_http_error = handle_http_error
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [Connection] the client connection.
|
13
|
+
attr_reader :conn
|
14
|
+
|
15
|
+
#
|
16
|
+
# List all email clients that can be used to generate email previews.
|
17
|
+
#
|
18
|
+
# Returns a list of available email clients.
|
19
|
+
#
|
20
|
+
# @return [PreviewEmailClientListResult] operation results.
|
21
|
+
#
|
22
|
+
def list_email_clients
|
23
|
+
response = conn.get 'api/previews/clients'
|
24
|
+
@handle_http_error.call(response) unless response.status == 200
|
25
|
+
model = JSON.parse(response.body)
|
26
|
+
Mailosaur::Models::PreviewEmailClientListResult.new(model)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/Mailosaur/version.rb
CHANGED
data/lib/mailosaur.rb
CHANGED
@@ -15,6 +15,7 @@ module Mailosaur
|
|
15
15
|
autoload :Servers, 'Mailosaur/servers.rb'
|
16
16
|
autoload :Usage, 'Mailosaur/usage.rb'
|
17
17
|
autoload :Devices, 'Mailosaur/devices.rb'
|
18
|
+
autoload :Previews, 'Mailosaur/previews.rb'
|
18
19
|
autoload :MailosaurError, 'Mailosaur/mailosaur_error.rb'
|
19
20
|
|
20
21
|
module Models
|
@@ -47,6 +48,12 @@ module Mailosaur
|
|
47
48
|
autoload :DeviceListResult, 'Mailosaur/models/device_list_result.rb'
|
48
49
|
autoload :DeviceCreateOptions, 'Mailosaur/models/device_create_options.rb'
|
49
50
|
autoload :OtpResult, 'Mailosaur/models/otp_result.rb'
|
51
|
+
autoload :Preview, 'Mailosaur/models/preview.rb'
|
52
|
+
autoload :PreviewEmailClient, 'Mailosaur/models/preview_email_client.rb'
|
53
|
+
autoload :PreviewEmailClientListResult, 'Mailosaur/models/preview_email_client_list_result.rb'
|
54
|
+
autoload :PreviewListResult, 'Mailosaur/models/preview_list_result.rb'
|
55
|
+
autoload :PreviewRequest, 'Mailosaur/models/preview_request.rb'
|
56
|
+
autoload :PreviewRequestOptions, 'Mailosaur/models/preview_request_options.rb'
|
50
57
|
autoload :BaseModel, 'Mailosaur/models/base_model.rb'
|
51
58
|
end
|
52
59
|
|
@@ -86,11 +93,16 @@ module Mailosaur
|
|
86
93
|
@usage ||= Usage.new(connection, method(:handle_http_error))
|
87
94
|
end
|
88
95
|
|
89
|
-
# @return [Devices]
|
96
|
+
# @return [Devices] devices
|
90
97
|
def devices
|
91
98
|
@devices ||= Devices.new(connection, method(:handle_http_error))
|
92
99
|
end
|
93
100
|
|
101
|
+
# @return [Previews] previews
|
102
|
+
def previews
|
103
|
+
@previews ||= Previews.new(connection, method(:handle_http_error))
|
104
|
+
end
|
105
|
+
|
94
106
|
private
|
95
107
|
|
96
108
|
def connection
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailosaur
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mailosaur
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -56,20 +56,14 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '2.
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 2.7.1
|
59
|
+
version: '2.8'
|
63
60
|
type: :development
|
64
61
|
prerelease: false
|
65
62
|
version_requirements: !ruby/object:Gem::Requirement
|
66
63
|
requirements:
|
67
64
|
- - "~>"
|
68
65
|
- !ruby/object:Gem::Version
|
69
|
-
version: '2.
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 2.7.1
|
66
|
+
version: '2.8'
|
73
67
|
- !ruby/object:Gem::Dependency
|
74
68
|
name: rake
|
75
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,6 +165,12 @@ files:
|
|
171
165
|
- lib/Mailosaur/models/message_summary.rb
|
172
166
|
- lib/Mailosaur/models/metadata.rb
|
173
167
|
- lib/Mailosaur/models/otp_result.rb
|
168
|
+
- lib/Mailosaur/models/preview.rb
|
169
|
+
- lib/Mailosaur/models/preview_email_client.rb
|
170
|
+
- lib/Mailosaur/models/preview_email_client_list_result.rb
|
171
|
+
- lib/Mailosaur/models/preview_list_result.rb
|
172
|
+
- lib/Mailosaur/models/preview_request.rb
|
173
|
+
- lib/Mailosaur/models/preview_request_options.rb
|
174
174
|
- lib/Mailosaur/models/search_criteria.rb
|
175
175
|
- lib/Mailosaur/models/server.rb
|
176
176
|
- lib/Mailosaur/models/server_create_options.rb
|
@@ -183,6 +183,7 @@ files:
|
|
183
183
|
- lib/Mailosaur/models/usage_transaction.rb
|
184
184
|
- lib/Mailosaur/models/usage_transaction_list_result.rb
|
185
185
|
- lib/Mailosaur/module_definition.rb
|
186
|
+
- lib/Mailosaur/previews.rb
|
186
187
|
- lib/Mailosaur/servers.rb
|
187
188
|
- lib/Mailosaur/usage.rb
|
188
189
|
- lib/Mailosaur/version.rb
|
@@ -211,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
212
|
- !ruby/object:Gem::Version
|
212
213
|
version: '0'
|
213
214
|
requirements: []
|
214
|
-
rubygems_version: 3.3.
|
215
|
+
rubygems_version: 3.3.26
|
215
216
|
signing_key:
|
216
217
|
specification_version: 4
|
217
218
|
summary: The Mailosaur Ruby library
|