Class: Sidemail::Delivery::Method
- Inherits:
-
Object
- Object
- Sidemail::Delivery::Method
- Defined in:
- lib/sidemail/delivery/method.rb
Constant Summary collapse
- URL =
URI("https://api.sidemail.io/v1/email/send")
Instance Method Summary collapse
- #deliver!(mail) ⇒ Object
-
#initialize(_options) ⇒ Method
constructor
A new instance of Method.
Constructor Details
#initialize(_options) ⇒ Method
Returns a new instance of Method.
8 9 10 |
# File 'lib/sidemail/delivery/method.rb', line 8 def initialize() # empty but unused, to avoid errors end |
Instance Method Details
#deliver!(mail) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/sidemail/delivery/method.rb', line 12 def deliver!(mail) response = post_to_api(mail[:to].addrs.map(&:address) + mail[:cc]&.addrs.to_a.map(&:address) + mail[:bcc]&.addrs.to_a.map(&:address), payload(mail)) JSON.parse(response.body).tap do |json| break if json.is_a?(Array) # successful mail to multiple addresses break unless json.key?("errorCode") raise Sidemail::Delivery::Exception.new("#{json["errorCode"]}: #{json["developerMessage"]}") end rescue JSON::ParserError raise Sidemail::Delivery::Exception.new("Unable to parse response") end |