mailclerk 0.1.1 → 1.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/README.md +5 -5
- data/lib/mailclerk.rb +34 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 227b81d20c20b98dc4fd1d582d18aa48c7687354b28a73da03480604859afae2
|
4
|
+
data.tar.gz: '0291df4fb61da622535bd19a1cef6662ae32732397e93e42d06bf08b4ca81c8a'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a518499c62151117b5369f5be66ab8dc475b379780f072516e6061f29b9d2103e867ce53d9ab96ae2b457f4971b12a7e95a1f51feeae8160a37478c9c81c104
|
7
|
+
data.tar.gz: 794a86c97badf077d70e12ab39e6c6cf1a07a24605e27bbda8e4562df29bb75a021f6f1c56da4a1945862a84527ae08f5cd0b0357936381be40b5a703db532be
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<p align="center">
|
2
|
-
<img src="
|
2
|
+
<img src="https://github.com/mailclerk/mailclerk-ruby/blob/main/mailclerk.png?raw=true" alt="Mailclerk Logo"/>
|
3
3
|
</p>
|
4
4
|
|
5
5
|
# Mailclerk
|
@@ -51,15 +51,15 @@ environmental variable: `MAILCLERK_API_KEY`. Alternatively, you can
|
|
51
51
|
set it directly on the Mailclerk module:
|
52
52
|
|
53
53
|
```
|
54
|
-
# config/initializers/
|
54
|
+
# config/initializers/mailclerk.rb
|
55
55
|
Mailclerk.api_key = "mc_yourprivatekey"
|
56
56
|
```
|
57
57
|
|
58
58
|
_If you are using version control like git, we strongly recommend storing your
|
59
59
|
production API keys in environmental variables_.
|
60
60
|
|
61
|
-
The default API endpoint is `https://api.
|
62
|
-
can provide a `MAILCLERK_API_URL` ENV variable or set `Mailclerk.
|
61
|
+
The default API endpoint is `https://api.mailclerk.app`. To change this, you
|
62
|
+
can provide a `MAILCLERK_API_URL` ENV variable or set `Mailclerk.mailclerk_url`.
|
63
63
|
|
64
64
|
## Usage
|
65
65
|
|
@@ -99,7 +99,7 @@ Mailclerk.deliver("welcome-email", "bob@example.com")
|
|
99
99
|
|
100
100
|
## Tests
|
101
101
|
|
102
|
-
Tests aren't
|
102
|
+
Tests aren't currently implemented. When they are, to test, run:
|
103
103
|
|
104
104
|
```
|
105
105
|
bundle exec rake
|
data/lib/mailclerk.rb
CHANGED
@@ -22,7 +22,7 @@ module Mailclerk
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.version
|
25
|
-
"0.
|
25
|
+
"1.0.0"
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.version_label
|
@@ -33,17 +33,31 @@ module Mailclerk
|
|
33
33
|
class MailclerkError < StandardError
|
34
34
|
end
|
35
35
|
|
36
|
+
class MailclerkAPIError < MailclerkError
|
37
|
+
attr_accessor :http_status
|
38
|
+
attr_accessor :http_response
|
39
|
+
|
40
|
+
def initialize(description, http_status=nil, http_response=nil)
|
41
|
+
super(description)
|
42
|
+
self.http_status = http_status
|
43
|
+
self.http_response = http_response
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
36
48
|
class Client
|
37
49
|
def initialize(api_key, api_url=nil)
|
38
50
|
@api_key = api_key
|
39
51
|
@api_url = api_url || ENV['MAILCLERK_API_URL'] || DEFAULT_API_URL
|
40
52
|
|
41
53
|
if @api_key.nil?
|
42
|
-
raise MailclerkError.new
|
54
|
+
raise MailclerkError.new(
|
55
|
+
"No Mailclerk API Key provided. Set `Mailclerk.api_key`"
|
56
|
+
)
|
43
57
|
end
|
44
58
|
|
45
59
|
if @api_url.nil? || @api_url.empty?
|
46
|
-
raise MailclerkError.new
|
60
|
+
raise MailclerkError.new("Mailclerk API URL empty")
|
47
61
|
end
|
48
62
|
end
|
49
63
|
|
@@ -51,7 +65,7 @@ module Mailclerk
|
|
51
65
|
conn = Faraday.new(url: @api_url)
|
52
66
|
conn.basic_auth(@api_key, '')
|
53
67
|
|
54
|
-
|
68
|
+
response = conn.post('deliver', {
|
55
69
|
'template' => template,
|
56
70
|
'recipient' => recipient,
|
57
71
|
'data' => data,
|
@@ -60,8 +74,23 @@ module Mailclerk
|
|
60
74
|
'Content-Type' => 'application/json',
|
61
75
|
'X-Client-Version' => Identity.version_label
|
62
76
|
})
|
77
|
+
|
78
|
+
if response.status >= 400
|
79
|
+
body = response.body
|
80
|
+
begin
|
81
|
+
message = JSON.parse("{ } { }")
|
82
|
+
description = "Mailclerk API Error: #{ message }"
|
83
|
+
rescue JSON::ParserError
|
84
|
+
description = "Mailclerk API Unknown Error"
|
85
|
+
end
|
86
|
+
|
87
|
+
raise MailclerkAPIError.new(
|
88
|
+
description, response.status, response
|
89
|
+
)
|
63
90
|
|
64
|
-
|
91
|
+
end
|
92
|
+
|
93
|
+
return response
|
65
94
|
end
|
66
95
|
end
|
67
96
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailclerk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Noah Litvin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-02-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|