mailinator_client 1.0.2 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/LICENSE +1 -1
- data/README.md +13 -1
- data/docs/domains.md +26 -0
- data/docs/messages.md +170 -14
- data/lib/mailinator_client/client.rb +12 -2
- data/lib/mailinator_client/domains.rb +60 -1
- data/lib/mailinator_client/error.rb +1 -1
- data/lib/mailinator_client/messages.rb +327 -16
- data/lib/mailinator_client/rules.rb +1 -1
- data/lib/mailinator_client/stats.rb +1 -1
- data/lib/mailinator_client/utils.rb +1 -1
- data/lib/mailinator_client/version.rb +25 -25
- data/lib/mailinator_client.rb +3 -1
- data/mailinator_client.gemspec +25 -25
- data/test/mailinator_client_api_test.rb +125 -25
- metadata +6 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3e1ec11068d686d886639d80e6a17e17fd991341367ad61f929990d61724ffa
|
4
|
+
data.tar.gz: 07e57ad2cb1d9ebf07bcf785b5a61ee5e8627225eac1cff501d65767e5ad1edf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9900dcb42cd529cf13e37ebf6cec0a3f06a6a31d5efd712f460d39c243ac55606d40ba2b186d9a80d373142bef38e6e0400b61f58051f2755e2e4c716b528eff
|
7
|
+
data.tar.gz: b31c3de9304ed10adebb2e21a1693be58bc0141c79bf741538b235650e0a4b740dc69c029d4b3653088ea663870ed9c7d9ec58f9bfc38236ac8f25691351383f
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.6
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -45,6 +45,9 @@ The ``Client()`` initializer takes the following arguments:
|
|
45
45
|
|
46
46
|
Each of the following is a method on the client object, and returns a wrapper for the actions against that particular resource. See each resource documentation file for more information.
|
47
47
|
|
48
|
+
* [authenticators](docs/authenticators.md)
|
49
|
+
Contains all of the actions that can be performed against the set of [Authenticators](https://manybrain.github.io/m8rdocs/#authenticators-api) that the currently authenticated user has access to - such as listing the authenticators.
|
50
|
+
|
48
51
|
* [domains](docs/domains.md)
|
49
52
|
Contains all of the actions that can be performed against the set of [Domains](https://manybrain.github.io/m8rdocs/#domains-api) that the currently authenticated user has access to - such as listing the domains.
|
50
53
|
|
@@ -56,6 +59,9 @@ Each of the following is a method on the client object, and returns a wrapper fo
|
|
56
59
|
|
57
60
|
* [messages](docs/messages.md)
|
58
61
|
Contains all of the actions that can be performed against the set of [Messages](https://manybrain.github.io/m8rdocs/#message-api) that the currently authenticated user has access to - such as listing the messages or injecting a new message.
|
62
|
+
|
63
|
+
* [webhooks](docs/webhooks.md)
|
64
|
+
Contains all of the actions that can be performed against the set of [Webhooks](https://manybrain.github.io/m8rdocs/#webhooks-api) that the currently user has access to - such as listing the webhooks.
|
59
65
|
|
60
66
|
<br/>
|
61
67
|
|
@@ -92,10 +98,16 @@ Most of the tests require env variables with valid values. Visit tests source co
|
|
92
98
|
* `MAILINATOR_TEST_MESSAGE_WITH_ATTACHMENT_ID` - existing message id within inbox (see above) within private domain (see above); see also https://manybrain.github.io/m8rdocs/#fetch-message
|
93
99
|
* `MAILINATOR_TEST_ATTACHMENT_ID` - existing message id within inbox (see above) within private domain (see above); see also https://manybrain.github.io/m8rdocs/#fetch-message
|
94
100
|
* `MAILINATOR_TEST_DELETE_DOMAIN` - don't use it unless you are 100% sure what you are doing
|
101
|
+
* `MAILINATOR_TEST_WEBHOOKTOKEN_PRIVATEDOMAIN` - private domain for webhook token
|
102
|
+
* `MAILINATOR_TEST_WEBHOOKTOKEN_CUSTOMSERVICE` - custom service for webhook token
|
103
|
+
* `MAILINATOR_TEST_AUTH_SECRET` - authenticator secret
|
104
|
+
* `MAILINATOR_TEST_AUTH_ID` - authenticator id
|
105
|
+
* `MAILINATOR_TEST_WEBHOOK_INBOX` - inbox for webhook
|
106
|
+
* `MAILINATOR_TEST_WEBHOOK_CUSTOMSERVICE` - custom service for webhook
|
95
107
|
|
96
108
|
|
97
109
|
*****
|
98
110
|
|
99
|
-
Copyright (c)
|
111
|
+
Copyright (c) 2024 Manybrain, Inc
|
100
112
|
|
101
113
|
<https://www.mailinator.com/>
|
data/docs/domains.md
CHANGED
@@ -6,6 +6,8 @@ Details on the various actions that can be performed on the Domains resource, in
|
|
6
6
|
|
7
7
|
* [GetDomains](#getdomains)
|
8
8
|
* [GetDomain](#getdomain)
|
9
|
+
* [CreateDomain](#createdomain)
|
10
|
+
* [DeleteDomain](#deletedomain)
|
9
11
|
|
10
12
|
<br/>
|
11
13
|
|
@@ -30,3 +32,27 @@ result = client.domains.get_domain(domainId: my_domain_id)
|
|
30
32
|
|
31
33
|
puts result
|
32
34
|
```
|
35
|
+
|
36
|
+
<br/>
|
37
|
+
|
38
|
+
## CreateDomain
|
39
|
+
|
40
|
+
This endpoint creates a private domain attached to your account. Note, the domain must be unique to the system and you must have not reached your maximum number of Private Domains.
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
result = client.domains.create_domain(domainId: my_domain_id)
|
44
|
+
|
45
|
+
puts result
|
46
|
+
```
|
47
|
+
|
48
|
+
<br/>
|
49
|
+
|
50
|
+
## DeleteDomain
|
51
|
+
|
52
|
+
This endpoint deletes a Private Domain
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
result = client.domains.delete_domain(domainId: my_domain_id)
|
56
|
+
|
57
|
+
puts result
|
58
|
+
```
|
data/docs/messages.md
CHANGED
@@ -5,15 +5,25 @@ Details on the various actions that can be performed on the Messages resource, i
|
|
5
5
|
##### Contents
|
6
6
|
|
7
7
|
* [FetchInbox](#fetchinbox)
|
8
|
+
* [FetchInboxMessage](#fetchinboxmessage)
|
8
9
|
* [FetchMessage](#fetchmessage)
|
9
10
|
* [FetchSMSMessage](#fetchsmsmessage)
|
10
|
-
* [
|
11
|
-
* [
|
11
|
+
* [FetchInboxMessageAttachments](#fetchinboxmessageattachments)
|
12
|
+
* [FetchMessageAttachments](#fetchmessageattachments)
|
13
|
+
* [FetchInboxMessageAttachment](#fetchinboxmessageattachment)
|
14
|
+
* [FetchMessageAttachment](#fetchmessageattachment)
|
12
15
|
* [FetchMessageLinks](#fetchmessagelinks)
|
16
|
+
* [FetchInboxMessageLinks](#fetchinboxmessagelinks)
|
13
17
|
* [DeleteAllDomainMessages](#deletealldomainmessages)
|
14
18
|
* [DeleteAllInboxMessages](#deleteallinboxmessages)
|
15
19
|
* [DeleteMessage](#deletemessage)
|
16
|
-
* [
|
20
|
+
* [PostMessage](#postmessage)
|
21
|
+
* [FetchMessageSmtpLog](#fetchmessagesmtplog)
|
22
|
+
* [FetchInboxMessageSmtpLog](#fetchinboxmessagesmtplog)
|
23
|
+
* [FetchMessageRaw](#fetchmessageraw)
|
24
|
+
* [FetchInboxMessageRaw](#fetchinboxmessageraw)
|
25
|
+
* [FetchLatestMessages](#fetchlatestmessages)
|
26
|
+
* [FetchLatestInboxMessages](#fetchlatestinboxmessages)
|
17
27
|
|
18
28
|
<br/>
|
19
29
|
|
@@ -35,12 +45,12 @@ puts result
|
|
35
45
|
|
36
46
|
<br/>
|
37
47
|
|
38
|
-
##
|
48
|
+
## FetchInboxMessage
|
39
49
|
|
40
|
-
Retrieves a specific message by id
|
50
|
+
Retrieves a specific message by id for specific inbox
|
41
51
|
|
42
52
|
```ruby
|
43
|
-
result = client.messages.
|
53
|
+
result = client.messages.fetch_inbox_message(
|
44
54
|
domainId: my_domain_id
|
45
55
|
inbox: my_inbox
|
46
56
|
messageId: my_message_id)
|
@@ -50,6 +60,19 @@ puts result
|
|
50
60
|
|
51
61
|
<br/>
|
52
62
|
|
63
|
+
## FetchMessage
|
64
|
+
|
65
|
+
Retrieves a specific message by id
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
result = client.messages.fetch_message(
|
69
|
+
domainId: my_domain_id
|
70
|
+
messageId: my_message_id)
|
71
|
+
|
72
|
+
puts result
|
73
|
+
```
|
74
|
+
|
75
|
+
<br/>
|
53
76
|
|
54
77
|
## FetchSMSMessage
|
55
78
|
|
@@ -67,12 +90,12 @@ puts result
|
|
67
90
|
<br/>
|
68
91
|
|
69
92
|
|
70
|
-
##
|
93
|
+
## FetchInboxMessageAttachments
|
71
94
|
|
72
|
-
Retrieves a list of attachments for a message
|
95
|
+
Retrieves a list of attachments for a message for specific inbox
|
73
96
|
|
74
97
|
```ruby
|
75
|
-
result = client.messages.
|
98
|
+
result = client.messages.fetch_inbox_message_attachments(
|
76
99
|
domainId: my_domain_id
|
77
100
|
inbox: my_inbox
|
78
101
|
messageId: my_message_id)
|
@@ -82,13 +105,27 @@ puts result
|
|
82
105
|
|
83
106
|
<br/>
|
84
107
|
|
108
|
+
## FetchMessageAttachments
|
85
109
|
|
86
|
-
|
110
|
+
Retrieves a list of attachments for a message
|
87
111
|
|
88
|
-
|
112
|
+
```ruby
|
113
|
+
result = client.messages.fetch_message_attachments(
|
114
|
+
domainId: my_domain_id
|
115
|
+
messageId: my_message_id)
|
116
|
+
|
117
|
+
puts result
|
118
|
+
```
|
119
|
+
|
120
|
+
<br/>
|
121
|
+
|
122
|
+
|
123
|
+
## FetchInboxMessageAttachment
|
124
|
+
|
125
|
+
Retrieves a specific attachment for specific inbox
|
89
126
|
|
90
127
|
```ruby
|
91
|
-
result = client.messages.
|
128
|
+
result = client.messages.fetch_inbox_message_attachment(
|
92
129
|
domainId: my_domain_id
|
93
130
|
inbox: my_inbox
|
94
131
|
messageId: my_message_id
|
@@ -99,6 +136,21 @@ puts result
|
|
99
136
|
|
100
137
|
<br/>
|
101
138
|
|
139
|
+
## FetchMessageAttachment
|
140
|
+
|
141
|
+
Retrieves a specific attachment
|
142
|
+
|
143
|
+
```ruby
|
144
|
+
result = client.messages.fetch_message_attachment(
|
145
|
+
domainId: my_domain_id
|
146
|
+
messageId: my_message_id
|
147
|
+
attachmentId: my_attachment_id)
|
148
|
+
|
149
|
+
puts result
|
150
|
+
```
|
151
|
+
|
152
|
+
<br/>
|
153
|
+
|
102
154
|
|
103
155
|
## FetchMessageLinks
|
104
156
|
|
@@ -106,6 +158,20 @@ Retrieves all links found within a given email
|
|
106
158
|
|
107
159
|
```ruby
|
108
160
|
result = client.messages.fetch_message_links(
|
161
|
+
domainId: my_domain_id
|
162
|
+
messageId: my_message_id)
|
163
|
+
|
164
|
+
puts result
|
165
|
+
```
|
166
|
+
|
167
|
+
<br/>
|
168
|
+
|
169
|
+
## FetchInboxMessageLinks
|
170
|
+
|
171
|
+
Retrieves all links found within a given email for specific inbox
|
172
|
+
|
173
|
+
```ruby
|
174
|
+
result = client.messages.fetch_inbox_message_links(
|
109
175
|
domainId: my_domain_id
|
110
176
|
inbox: my_inbox
|
111
177
|
messageId: my_message_id)
|
@@ -162,15 +228,105 @@ puts result
|
|
162
228
|
<br/>
|
163
229
|
|
164
230
|
|
165
|
-
##
|
231
|
+
## PostMessage
|
166
232
|
|
167
233
|
Deliver a JSON message into your private domain
|
168
234
|
|
169
235
|
```ruby
|
170
|
-
result = client.messages.
|
236
|
+
result = client.messages.post_message(
|
171
237
|
domainId: my_domain_id
|
172
238
|
inbox: my_inbox
|
173
239
|
messageToPost: my_message_to_post)
|
174
240
|
|
175
241
|
puts result
|
176
242
|
```
|
243
|
+
|
244
|
+
<br/>
|
245
|
+
|
246
|
+
|
247
|
+
## FetchMessageSmtpLog
|
248
|
+
|
249
|
+
Retrieves all smtp log found within a given email
|
250
|
+
|
251
|
+
```ruby
|
252
|
+
result = client.messages.fetch_message_smtp_log(
|
253
|
+
domainId: my_domain_id
|
254
|
+
messageId: my_message_id)
|
255
|
+
|
256
|
+
puts result
|
257
|
+
```
|
258
|
+
|
259
|
+
<br/>
|
260
|
+
|
261
|
+
## FetchInboxMessageSmtpLog
|
262
|
+
|
263
|
+
Retrieves all smtp log found within a given email for specific inbox
|
264
|
+
|
265
|
+
```ruby
|
266
|
+
result = client.messages.fetch_inbox_message_smtp_log(
|
267
|
+
domainId: my_domain_id
|
268
|
+
inbox: my_inbox
|
269
|
+
messageId: my_message_id)
|
270
|
+
|
271
|
+
puts result
|
272
|
+
```
|
273
|
+
|
274
|
+
<br/>
|
275
|
+
|
276
|
+
|
277
|
+
## FetchMessageRaw
|
278
|
+
|
279
|
+
Retrieves all raw data found within a given email
|
280
|
+
|
281
|
+
```ruby
|
282
|
+
result = client.messages.fetch_message_raw(
|
283
|
+
domainId: my_domain_id
|
284
|
+
messageId: my_message_id)
|
285
|
+
|
286
|
+
puts result
|
287
|
+
```
|
288
|
+
|
289
|
+
<br/>
|
290
|
+
|
291
|
+
## FetchInboxMessageLinks
|
292
|
+
|
293
|
+
Retrieves all raw data found within a given email for specific inbox
|
294
|
+
|
295
|
+
```ruby
|
296
|
+
result = client.messages.fetch_inbox_message_raw(
|
297
|
+
domainId: my_domain_id
|
298
|
+
inbox: my_inbox
|
299
|
+
messageId: my_message_id)
|
300
|
+
|
301
|
+
puts result
|
302
|
+
```
|
303
|
+
|
304
|
+
<br/>
|
305
|
+
|
306
|
+
|
307
|
+
## FetchLatestMessages
|
308
|
+
|
309
|
+
That fetches the latest 5 FULL messages
|
310
|
+
|
311
|
+
```ruby
|
312
|
+
result = client.messages.fetch_latest_messages(
|
313
|
+
domainId: my_domain_id
|
314
|
+
messageId: my_message_id)
|
315
|
+
|
316
|
+
puts result
|
317
|
+
```
|
318
|
+
|
319
|
+
<br/>
|
320
|
+
|
321
|
+
## FetchLatestInboxMessages
|
322
|
+
|
323
|
+
That fetches the latest 5 FULL messages for specific inbox
|
324
|
+
|
325
|
+
```ruby
|
326
|
+
result = client.messages.fetch_latest_inbox_messages(
|
327
|
+
domainId: my_domain_id
|
328
|
+
inbox: my_inbox
|
329
|
+
messageId: my_message_id)
|
330
|
+
|
331
|
+
puts result
|
332
|
+
```
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# The MIT License (MIT)
|
2
2
|
#
|
3
|
-
# Copyright (c)
|
3
|
+
# Copyright (c) 2024 Manybrain, Inc.
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -23,6 +23,7 @@
|
|
23
23
|
require "httparty"
|
24
24
|
|
25
25
|
module MailinatorClient
|
26
|
+
require_relative 'version'
|
26
27
|
# Mailinator API
|
27
28
|
#
|
28
29
|
# User API for accessing Mailinator data
|
@@ -31,7 +32,11 @@ module MailinatorClient
|
|
31
32
|
|
32
33
|
def initialize(options = {})
|
33
34
|
@auth_token = options.fetch(:auth_token, nil)
|
34
|
-
@url = "https://mailinator.com/api/v2"
|
35
|
+
@url = "https://api.mailinator.com/api/v2"
|
36
|
+
end
|
37
|
+
|
38
|
+
def authenticators
|
39
|
+
@authenticators ||= Authenticators.new(self)
|
35
40
|
end
|
36
41
|
|
37
42
|
def domains
|
@@ -50,12 +55,17 @@ module MailinatorClient
|
|
50
55
|
@rules ||= Rules.new(self)
|
51
56
|
end
|
52
57
|
|
58
|
+
def webhooks
|
59
|
+
@webhooks ||= Webhooks.new(self)
|
60
|
+
end
|
61
|
+
|
53
62
|
def request(options = {})
|
54
63
|
headers = options.fetch(:headers, {})
|
55
64
|
method = options.fetch(:method, :get)
|
56
65
|
|
57
66
|
headers["Accept"] = "application/json"
|
58
67
|
headers["Content-Type"] = "application/json"
|
68
|
+
headers["User-Agent"] = "Mailinator SDK - Ruby V#{MailinatorClient::VERSION}"
|
59
69
|
headers["Authorization"] = @auth_token if @auth_token
|
60
70
|
path = @url + options.fetch(:path, "")
|
61
71
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# The MIT License (MIT)
|
2
2
|
#
|
3
|
-
# Copyright (c)
|
3
|
+
# Copyright (c) 2024 Manybrain, Inc.
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -83,5 +83,64 @@ module MailinatorClient
|
|
83
83
|
body: body)
|
84
84
|
end
|
85
85
|
|
86
|
+
# This endpoint creates a private domain attached to your account.
|
87
|
+
# Note, the domain must be unique to the system and you must have not reached your maximum number of Private Domains.
|
88
|
+
#
|
89
|
+
# Authentication:
|
90
|
+
# The client must be configured with a valid api
|
91
|
+
# access token to call this action.
|
92
|
+
#
|
93
|
+
# Parameters:
|
94
|
+
# * {string} domainId - The Domain name
|
95
|
+
#
|
96
|
+
# Responses:
|
97
|
+
# * Status (https://manybrain.github.io/m8rdocs/#create-domain)
|
98
|
+
def create_domain(params = {})
|
99
|
+
params = Utils.symbolize_hash_keys(params)
|
100
|
+
query_params = { }
|
101
|
+
headers = {}
|
102
|
+
body = nil
|
103
|
+
|
104
|
+
raise ArgumentError.new("domain id is required") unless params.has_key?(:domainId)
|
105
|
+
|
106
|
+
path = "/domains/#{params[:domainId]}"
|
107
|
+
|
108
|
+
@client.request(
|
109
|
+
method: :post,
|
110
|
+
path: path,
|
111
|
+
query: query_params,
|
112
|
+
headers: headers,
|
113
|
+
body: body)
|
114
|
+
end
|
115
|
+
|
116
|
+
# This endpoint deletes a Private Domain
|
117
|
+
#
|
118
|
+
# Authentication:
|
119
|
+
# The client must be configured with a valid api
|
120
|
+
# access token to call this action.
|
121
|
+
#
|
122
|
+
# Parameters:
|
123
|
+
# * {string} domainId - The Domain name or the Domain id
|
124
|
+
#
|
125
|
+
# Responses:
|
126
|
+
# * Status (https://manybrain.github.io/m8rdocs/#delete-domain)
|
127
|
+
def delete_domain(params = {})
|
128
|
+
params = Utils.symbolize_hash_keys(params)
|
129
|
+
query_params = { }
|
130
|
+
headers = {}
|
131
|
+
body = nil
|
132
|
+
|
133
|
+
raise ArgumentError.new("domain id is required") unless params.has_key?(:domainId)
|
134
|
+
|
135
|
+
path = "/domains/#{params[:domainId]}"
|
136
|
+
|
137
|
+
@client.request(
|
138
|
+
method: :delete,
|
139
|
+
path: path,
|
140
|
+
query: query_params,
|
141
|
+
headers: headers,
|
142
|
+
body: body)
|
143
|
+
end
|
144
|
+
|
86
145
|
end
|
87
146
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# The MIT License (MIT)
|
2
2
|
#
|
3
|
-
# Copyright (c)
|
3
|
+
# Copyright (c) 2024 Manybrain, Inc.
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
# of this software and associated documentation files (the "Software"), to deal
|