mailinator_client 1.0.0 → 1.0.1
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/.gitignore +23 -0
- data/.markdownlint.json +11 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +2 -0
- data/LICENSE +21 -0
- data/README.md +101 -0
- data/Rakefile +12 -0
- data/docs/domains.md +32 -0
- data/docs/messages.md +176 -0
- data/docs/rules.md +95 -0
- data/docs/stats.md +32 -0
- data/lib/mailinator_client.rb +46 -0
- data/lib/mailinator_client/client.rb +75 -0
- data/lib/mailinator_client/domains.rb +87 -0
- data/lib/mailinator_client/error.rb +34 -0
- data/lib/mailinator_client/messages.rb +371 -0
- data/lib/mailinator_client/rules.rb +221 -0
- data/lib/mailinator_client/stats.rb +82 -0
- data/lib/mailinator_client/utils.rb +44 -0
- data/lib/mailinator_client/version.rb +25 -0
- data/mailinator_client.gemspec +25 -0
- data/test/mailinator_client_api_test.rb +132 -0
- data/test/test_helper.rb +16 -0
- metadata +30 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f84751a84c2f12dd32480148d28b58875645036b6e9ee37ec3b576f312c6344
|
4
|
+
data.tar.gz: bac6eaadc70a33e194df359bb2457f2e41583c04f210ab48ad0457cc8a44ada9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 913642bb4acca4b7a5ec4c0e7b06ddb3436e297bae4200bf884d9929423d692d40846f3deb3657dabf0aa0cacae59b7f9fdcbf32fd266a4b193c786b4c0446f9
|
7
|
+
data.tar.gz: d449cf69820f51a4c8721aed676da788b6b11336c70cb6017f7aee9681fa8758862a84fb528746957349000b637c3a14b7d37cc1e8855b2876d16bea8490061c
|
data/.gitignore
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
*~
|
2
|
+
\#*
|
3
|
+
.\#*
|
4
|
+
.DS_Store
|
5
|
+
*_flymake.*
|
6
|
+
*.LCK
|
7
|
+
.bundle
|
8
|
+
vendor/bundle
|
9
|
+
bin
|
10
|
+
*.gem
|
11
|
+
*.rbc
|
12
|
+
.bundle
|
13
|
+
.config
|
14
|
+
.yardoc
|
15
|
+
_yardoc
|
16
|
+
coverage
|
17
|
+
pkg
|
18
|
+
rdoc
|
19
|
+
spec/reports
|
20
|
+
test/tmp
|
21
|
+
test/version_tmp
|
22
|
+
tmp
|
23
|
+
Gemfile.lock
|
data/.markdownlint.json
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5.3
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2020 Manybrain, Inc.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
# Mailinator Ruby REST API Client
|
2
|
+
|
3
|
+
[](https://travis-ci.org/manybrain/mailinator-ruby-client) [](https://badge.fury.io/rb/mailinator_client)
|
4
|
+
|
5
|
+
The [Mailinator](https://www.mailinator.com/) REST API client provides a simple way to use the comprehensive Mailinator API.
|
6
|
+
|
7
|
+
This client works with Ruby 2.1 and higher. It uses [HTTParty](https://github.com/jnunemaker/httparty) under the covers for the actual HTTP communication.
|
8
|
+
|
9
|
+
<br/>
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
The latest stable version is available in RubyGems and can be installed using
|
14
|
+
|
15
|
+
```bash
|
16
|
+
gem install mailinator_client
|
17
|
+
```
|
18
|
+
|
19
|
+
<br/>
|
20
|
+
|
21
|
+
## API Documentation
|
22
|
+
|
23
|
+
### MailinatorClient
|
24
|
+
|
25
|
+
MailinatorClient is the wrapping module, but it also acts as a singleton [Client](#mailinatorclient) instance. So if you only need a single client instance, you do not need to instantiate one yourself - the MailinatorClient module will act exactly like an instance of MailinatorClient::Client.
|
26
|
+
|
27
|
+
<br/>
|
28
|
+
|
29
|
+
### MailinatorClient::Client
|
30
|
+
|
31
|
+
A client is a single api instance. By default, it is unauthenticated, but can be given an access token to perform authenticated requests.
|
32
|
+
|
33
|
+
#### Initializer
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
MailinatorClient::Client.new(auth_token: nil)
|
37
|
+
```
|
38
|
+
|
39
|
+
The ``Client()`` initializer takes the following arguments:
|
40
|
+
|
41
|
+
* auth_token
|
42
|
+
The access token to be used for authentication - by default there is no access token.
|
43
|
+
|
44
|
+
#### Resources
|
45
|
+
|
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
|
+
|
48
|
+
* [domains](docs/domains.md)
|
49
|
+
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
|
+
|
51
|
+
* [stats](docs/stats.md)
|
52
|
+
Contains all of the actions that can be performed against the set of [Stats](https://manybrain.github.io/m8rdocs/#stats-api) that the currently authenticated user has access to - such as listing the team stats.
|
53
|
+
|
54
|
+
* [rules](docs/rules.md)
|
55
|
+
Contains all of the actions that can be performed against the set of [Rules](https://manybrain.github.io/m8rdocs/#rules-api) that the currently authenticated user has access to - such as listing the rules or creating a new rule.
|
56
|
+
|
57
|
+
* [messages](docs/messages.md)
|
58
|
+
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.
|
59
|
+
|
60
|
+
<br/>
|
61
|
+
|
62
|
+
### MailinatorClient::ResponseError
|
63
|
+
|
64
|
+
When the Mailinator API returns a unsuccessful response, an instance of ResponseError is thrown.
|
65
|
+
|
66
|
+
#### ResponseError Accessors
|
67
|
+
|
68
|
+
* code
|
69
|
+
The status code returned from the Mailinator API.
|
70
|
+
|
71
|
+
* type
|
72
|
+
The type of error that occurred, such as "Authorization".
|
73
|
+
|
74
|
+
* message
|
75
|
+
A more detailed message about the particulars of the error.
|
76
|
+
|
77
|
+
<br/>
|
78
|
+
|
79
|
+
## Testing
|
80
|
+
|
81
|
+
Run integration tests with real API Key.
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
ruby -I test test/mailinator_client_api_test.rb
|
85
|
+
```
|
86
|
+
|
87
|
+
Most of the tests require env variables with valid values. Visit tests source code and review `mailinator_client_api_test.rb` file. The more env variables you set, the more tests are run.
|
88
|
+
|
89
|
+
* `MAILINATOR_TEST_API_TOKEN` - API tokens for authentication; basic requirement across many tests;see also https://manybrain.github.io/m8rdocs/#api-authentication
|
90
|
+
* `MAILINATOR_TEST_INBOX` - some already existing inbox within the private domain
|
91
|
+
* `MAILINATOR_TEST_PHONE_NUMBER` - associated phone number within the private domain; see also https://manybrain.github.io/m8rdocs/#fetch-an-sms-messages
|
92
|
+
* `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
|
+
* `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
|
+
* `MAILINATOR_TEST_DELETE_DOMAIN` - don't use it unless you are 100% sure what you are doing
|
95
|
+
|
96
|
+
|
97
|
+
*****
|
98
|
+
|
99
|
+
Copyright (c) 2020 Manybrain, Inc
|
100
|
+
|
101
|
+
<https://www.mailinator.com/>
|
data/Rakefile
ADDED
data/docs/domains.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# Domains Actions
|
2
|
+
|
3
|
+
Details on the various actions that can be performed on the Domains resource, including the expected parameters and the potential responses.
|
4
|
+
|
5
|
+
##### Contents
|
6
|
+
|
7
|
+
* [GetDomains](#getdomains)
|
8
|
+
* [GetDomain](#getdomain)
|
9
|
+
|
10
|
+
<br/>
|
11
|
+
|
12
|
+
## GetDomains
|
13
|
+
|
14
|
+
Fetches a list of all your domains
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
result = client.domains.get_domains()
|
18
|
+
|
19
|
+
puts result
|
20
|
+
```
|
21
|
+
|
22
|
+
<br/>
|
23
|
+
|
24
|
+
## GetDomain
|
25
|
+
|
26
|
+
Fetches a specific domain
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
result = client.domains.get_domain(domainId: my_domain_id)
|
30
|
+
|
31
|
+
puts result
|
32
|
+
```
|
data/docs/messages.md
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
# Messages Actions
|
2
|
+
|
3
|
+
Details on the various actions that can be performed on the Messages resource, including the expected parameters and the potential responses.
|
4
|
+
|
5
|
+
##### Contents
|
6
|
+
|
7
|
+
* [FetchInbox](#fetchinbox)
|
8
|
+
* [FetchMessage](#fetchmessage)
|
9
|
+
* [FetchSMSMessage](#fetchsmsmessage)
|
10
|
+
* [FetchAttachments](#fetchattachments)
|
11
|
+
* [FetchAttachment](#fetchattachment)
|
12
|
+
* [FetchMessageLinks](#fetchmessagelinks)
|
13
|
+
* [DeleteAllDomainMessages](#deletealldomainmessages)
|
14
|
+
* [DeleteAllInboxMessages](#deleteallinboxmessages)
|
15
|
+
* [DeleteMessage](#deletemessage)
|
16
|
+
* [InjectMessage](#injectmessage)
|
17
|
+
|
18
|
+
<br/>
|
19
|
+
|
20
|
+
## FetchInbox
|
21
|
+
|
22
|
+
Retrieves a list of messages summaries
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
result = client.messages.fetch_inbox(
|
26
|
+
domainId: my_domain_id
|
27
|
+
inbox: my_inbox
|
28
|
+
skip: my_skip
|
29
|
+
limit: my_limit
|
30
|
+
sort: my_sort
|
31
|
+
decodeSubject: my_decode_subject)
|
32
|
+
|
33
|
+
puts result
|
34
|
+
```
|
35
|
+
|
36
|
+
<br/>
|
37
|
+
|
38
|
+
## FetchMessage
|
39
|
+
|
40
|
+
Retrieves a specific message by id
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
result = client.messages.fetch_inbox(
|
44
|
+
domainId: my_domain_id
|
45
|
+
inbox: my_inbox
|
46
|
+
messageId: my_message_id)
|
47
|
+
|
48
|
+
puts result
|
49
|
+
```
|
50
|
+
|
51
|
+
<br/>
|
52
|
+
|
53
|
+
|
54
|
+
## FetchSMSMessage
|
55
|
+
|
56
|
+
Retrieves a specific SMS message by sms number
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
result = client.messages.fetch_sms_message(
|
60
|
+
domainId: my_domain_id
|
61
|
+
inbox: my_inbox
|
62
|
+
teamSmsNumber: my_team_sms_number)
|
63
|
+
|
64
|
+
puts result
|
65
|
+
```
|
66
|
+
|
67
|
+
<br/>
|
68
|
+
|
69
|
+
|
70
|
+
## FetchAttachments
|
71
|
+
|
72
|
+
Retrieves a list of attachments for a message
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
result = client.messages.fetch_attachments(
|
76
|
+
domainId: my_domain_id
|
77
|
+
inbox: my_inbox
|
78
|
+
messageId: my_message_id)
|
79
|
+
|
80
|
+
puts result
|
81
|
+
```
|
82
|
+
|
83
|
+
<br/>
|
84
|
+
|
85
|
+
|
86
|
+
## FetchAttachment
|
87
|
+
|
88
|
+
Retrieves a specific attachment
|
89
|
+
|
90
|
+
```ruby
|
91
|
+
result = client.messages.fetch_attachment(
|
92
|
+
domainId: my_domain_id
|
93
|
+
inbox: my_inbox
|
94
|
+
messageId: my_message_id
|
95
|
+
attachmentId: my_attachment_id)
|
96
|
+
|
97
|
+
puts result
|
98
|
+
```
|
99
|
+
|
100
|
+
<br/>
|
101
|
+
|
102
|
+
|
103
|
+
## FetchMessageLinks
|
104
|
+
|
105
|
+
Retrieves all links found within a given email
|
106
|
+
|
107
|
+
```ruby
|
108
|
+
result = client.messages.fetch_message_links(
|
109
|
+
domainId: my_domain_id
|
110
|
+
inbox: my_inbox
|
111
|
+
messageId: my_message_id)
|
112
|
+
|
113
|
+
puts result
|
114
|
+
```
|
115
|
+
|
116
|
+
<br/>
|
117
|
+
|
118
|
+
|
119
|
+
## DeleteAllDomainMessages
|
120
|
+
|
121
|
+
Deletes ALL messages from a Private Domain
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
result = client.messages.delete_all_domain_messages(
|
125
|
+
domainId: my_domain_id)
|
126
|
+
|
127
|
+
puts result
|
128
|
+
```
|
129
|
+
|
130
|
+
<br/>
|
131
|
+
|
132
|
+
|
133
|
+
## DeleteAllInboxMessages
|
134
|
+
|
135
|
+
Deletes ALL messages from a specific private inbox
|
136
|
+
|
137
|
+
```ruby
|
138
|
+
result = client.messages.delete_all_inbox_messages(
|
139
|
+
domainId: my_domain_id
|
140
|
+
inbox: my_inbox
|
141
|
+
messageId: my_message_id)
|
142
|
+
|
143
|
+
puts result
|
144
|
+
```
|
145
|
+
|
146
|
+
<br/>
|
147
|
+
|
148
|
+
|
149
|
+
## DeleteMessage
|
150
|
+
|
151
|
+
Deletes a specific messages
|
152
|
+
|
153
|
+
```ruby
|
154
|
+
result = client.messages.delete_message(
|
155
|
+
domainId: my_domain_id
|
156
|
+
inbox: my_inbox
|
157
|
+
messageId: my_message_id)
|
158
|
+
|
159
|
+
puts result
|
160
|
+
```
|
161
|
+
|
162
|
+
<br/>
|
163
|
+
|
164
|
+
|
165
|
+
## InjectMessage
|
166
|
+
|
167
|
+
Deliver a JSON message into your private domain
|
168
|
+
|
169
|
+
```ruby
|
170
|
+
result = client.messages.inject_message(
|
171
|
+
domainId: my_domain_id
|
172
|
+
inbox: my_inbox
|
173
|
+
messageToPost: my_message_to_post)
|
174
|
+
|
175
|
+
puts result
|
176
|
+
```
|
data/docs/rules.md
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
# Rules Actions
|
2
|
+
|
3
|
+
Details on the various actions that can be performed on the Rules resource, including the expected parameters and the potential responses.
|
4
|
+
|
5
|
+
##### Contents
|
6
|
+
|
7
|
+
* [CreateRule](#createrule)
|
8
|
+
* [EnableRule](#enablerule)
|
9
|
+
* [DisableRule](#disablerule)
|
10
|
+
* [GetAllRules](#getallrules)
|
11
|
+
* [GetRule](#getrule)
|
12
|
+
* [DeleteRule](#deleterule)
|
13
|
+
|
14
|
+
<br/>
|
15
|
+
|
16
|
+
## CreateRule
|
17
|
+
|
18
|
+
Creates a Rule
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
result = client.rules.create_rule(
|
22
|
+
domainId: my_domain_id,
|
23
|
+
ruleToPost: my_rule_to_post
|
24
|
+
)
|
25
|
+
|
26
|
+
puts result
|
27
|
+
```
|
28
|
+
|
29
|
+
<br/>
|
30
|
+
|
31
|
+
## EnableRule
|
32
|
+
|
33
|
+
Enables an existing Rule
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
result = client.rules.enable_rule(
|
37
|
+
domainId: my_domain_id
|
38
|
+
ruleId: my_rule_id)
|
39
|
+
|
40
|
+
puts result
|
41
|
+
```
|
42
|
+
|
43
|
+
<br/>
|
44
|
+
|
45
|
+
## DisableRule
|
46
|
+
|
47
|
+
Disables an existing Rule
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
result = client.rules.disable_rule(
|
51
|
+
domainId: my_domain_id
|
52
|
+
ruleId: my_rule_id)
|
53
|
+
|
54
|
+
puts result
|
55
|
+
```
|
56
|
+
|
57
|
+
<br/>
|
58
|
+
|
59
|
+
## GetAllRules
|
60
|
+
|
61
|
+
Fetches all Rules for a Domain
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
result = client.rules.get_all_rules(domainId: my_domain_id)
|
65
|
+
|
66
|
+
puts result
|
67
|
+
```
|
68
|
+
|
69
|
+
<br/>
|
70
|
+
|
71
|
+
## GetRule
|
72
|
+
|
73
|
+
Fetches a specific rule for a Domain
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
result = client.rules.get_rule(
|
77
|
+
domainId: my_domain_id
|
78
|
+
ruleId: my_rule_id)
|
79
|
+
|
80
|
+
puts result
|
81
|
+
```
|
82
|
+
|
83
|
+
<br/>
|
84
|
+
|
85
|
+
## DeleteRule
|
86
|
+
|
87
|
+
Deletes a specific rule for a Domain
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
result = client.rules.delete_rule(
|
91
|
+
domainId: my_domain_id
|
92
|
+
ruleId: my_rule_id)
|
93
|
+
|
94
|
+
puts result
|
95
|
+
```
|