22 lines
589 B
Ruby
22 lines
589 B
Ruby
|
module Dolist
|
||
|
class APISender
|
||
|
def initialize(mail); end
|
||
|
|
||
|
def deliver!(mail)
|
||
|
client = Dolist::API.new
|
||
|
response = client.send_email(mail)
|
||
|
if response&.dig("Result")
|
||
|
mail.message_id = response.dig("Result")
|
||
|
else
|
||
|
_, invalid_contact_status = client.ignorable_error?(response, mail)
|
||
|
|
||
|
if invalid_contact_status
|
||
|
raise Dolist::IgnorableError.new("DoList delivery error. contact unreachable: #{invalid_contact_status}")
|
||
|
else
|
||
|
fail "DoList delivery error. Body: #{response}"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|