mailclerk 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/lib/mailclerk.rb +34 -5
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0746f6e459e89ebf5c23c33c940f10f4639d7b92e9bffbb7bb0f0c217608d8e9
4
- data.tar.gz: 12c12b1846326a577d6423dd7b20ecf77156c50d4e3ab084327b72224a4b8023
3
+ metadata.gz: 227b81d20c20b98dc4fd1d582d18aa48c7687354b28a73da03480604859afae2
4
+ data.tar.gz: '0291df4fb61da622535bd19a1cef6662ae32732397e93e42d06bf08b4ca81c8a'
5
5
  SHA512:
6
- metadata.gz: 1867bff480e230a049d3ec3f14221ca83ace81ed745cbefd1b3b7ef7ec6d6d561f7b8f9fe37b9d0d83d178f50ed28061bf6f35768f806dd4e9d27997a7f6c289
7
- data.tar.gz: 5aa6071e289c6194fe43abfba94ed141200b1c385c42ac897e4c09dd0b0bf722f079f7e69b0d96d767deac7273a47a5475b31d60aac3160575dfb431e0006ffa
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="mailcerk.png" alt="Mailclerk Logo"/>
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/mailcerk.rb
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.mailcerk.app`. To change this, you
62
- can provide a `MAILCLERK_API_URL` ENV variable or set `Mailclerk.mailcerk_url`.
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 current implemented. When they are, to test, run:
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.1.1"
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 "No Mailclerk API Key provided. Set `Mailclerk.api_key`"
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 "Mailclerk API URL empty"
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
- resp = conn.post('deliver', {
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
- return resp
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.1.1
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-01-28 00:00:00.000000000 Z
12
+ date: 2021-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday