Class: ActionMailbox::Relayer
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Inherits: | Object |
Defined in: | actionmailbox/lib/action_mailbox/relayer.rb |
Constant Summary
-
CONTENT_TYPE =
# File 'actionmailbox/lib/action_mailbox/relayer.rb', line 27"message/rfc822"
-
USER_AGENT =
# File 'actionmailbox/lib/action_mailbox/relayer.rb', line 28"Action Mailbox relayer v#{ActionMailbox.version}"
Class Method Summary
Instance Attribute Summary
Instance Method Summary
- #relay(source)
- #client private
- #post(source) private
Constructor Details
.new(url:, username: "actionmailbox", password:) ⇒ Relayer
Instance Attribute Details
#password (readonly)
[ GitHub ]#uri (readonly)
[ GitHub ]#username (readonly)
[ GitHub ]Instance Method Details
#client (private)
[ GitHub ]# File 'actionmailbox/lib/action_mailbox/relayer.rb', line 61
def client @client ||= Net::HTTP.new(uri.host, uri.port).tap do |connection| if uri.scheme == "https" require "openssl" connection.use_ssl = true connection.verify_mode = OpenSSL::SSL::VERIFY_PEER end connection.open_timeout = 1 connection.read_timeout = 10 end end
#post(source) (private)
[ GitHub ]# File 'actionmailbox/lib/action_mailbox/relayer.rb', line 54
def post(source) client.post uri, source, "Content-Type" => CONTENT_TYPE, "User-Agent" => USER_AGENT, "Authorization" => "Basic #{Base64.strict_encode64(username + ":" + password)}" end
#relay(source)
[ GitHub ]# File 'actionmailbox/lib/action_mailbox/relayer.rb', line 36
def relay(source) case response = post(source) when Net::HTTPSuccess Result.new "2.0.0", "Successfully relayed message to ingress" when Net::HTTPUnauthorized Result.new "4.7.0", "Invalid credentials for ingress" else Result.new "4.0.0", "HTTP #{response.code}" end rescue IOError, SocketError, SystemCallError => error Result.new "4.4.2", "Network error relaying to ingress: #{error.}" rescue Timeout::Error Result.new "4.4.2", "Timed out relaying to ingress" rescue => error Result.new "4.0.0", "Error relaying to ingress: #{error.}" end