diff options
author | George Claghorn <george@basecamp.com> | 2018-11-25 21:35:27 -0500 |
---|---|---|
committer | George Claghorn <george@basecamp.com> | 2018-11-25 21:53:22 -0500 |
commit | dcea1b18dae59a371ef8ac32b4874f3daf748001 (patch) | |
tree | 202d24821ffc0db43fe729e1fe60c78227b418e1 | |
parent | 5ae21598731a8a539c025d2c57576ab44148c3fb (diff) | |
download | rails-dcea1b18dae59a371ef8ac32b4874f3daf748001.tar.gz rails-dcea1b18dae59a371ef8ac32b4874f3daf748001.tar.bz2 rails-dcea1b18dae59a371ef8ac32b4874f3daf748001.zip |
YAGNI user agent customization
-rw-r--r-- | lib/action_mailbox/postfix_relayer.rb | 15 | ||||
-rw-r--r-- | lib/tasks/ingress.rake | 11 | ||||
-rw-r--r-- | test/unit/postfix_relayer_test.rb | 3 |
3 files changed, 16 insertions, 13 deletions
diff --git a/lib/action_mailbox/postfix_relayer.rb b/lib/action_mailbox/postfix_relayer.rb index ee18c8f6ba..268ca5661b 100644 --- a/lib/action_mailbox/postfix_relayer.rb +++ b/lib/action_mailbox/postfix_relayer.rb @@ -15,10 +15,13 @@ module ActionMailbox end end - attr_reader :uri, :username, :password, :user_agent + CONTENT_TYPE = "message/rfc822" + USER_AGENT = "Action Mailbox Postfix relayer" - def initialize(url:, username: "actionmailbox", password:, user_agent: nil) - @uri, @username, @password, @user_agent = URI(url), username, password, user_agent || "Postfix" + attr_reader :uri, :username, :password + + def initialize(url:, username: "actionmailbox", password:) + @uri, @username, @password = URI(url), username, password end def relay(source) @@ -40,9 +43,9 @@ module ActionMailbox private def post(source) - client.post uri.path, source, - "Content-Type" => "message/rfc822", - "User-Agent" => user_agent, + client.post uri, source, + "Content-Type" => CONTENT_TYPE, + "User-Agent" => USER_AGENT, "Authorization" => "Basic #{Base64.strict_encode64(username + ":" + password)}" end diff --git a/lib/tasks/ingress.rake b/lib/tasks/ingress.rake index 3f57b79caa..1253f94f71 100644 --- a/lib/tasks/ingress.rake +++ b/lib/tasks/ingress.rake @@ -8,18 +8,17 @@ namespace :action_mailbox do require "active_support/core_ext/object/blank" require "action_mailbox/postfix_relayer" - url, password, user_agent = ENV.values_at("URL", "INGRESS_PASSWORD", "USER_AGENT") + url, password = ENV.values_at("URL", "INGRESS_PASSWORD") if url.blank? || password.blank? print "4.3.5 URL and INGRESS_PASSWORD are required" exit 1 end - ActionMailbox::PostfixRelayer.new(url: url, password: password, user_agent: user_agent) - .relay(STDIN.read).tap do |result| - print result.output - exit result.success? ? 0 : 1 - end + ActionMailbox::PostfixRelayer.new(url: url, password: password).relay(STDIN.read).tap do |result| + print result.output + exit result.success? ? 0 : 1 + end end end end diff --git a/test/unit/postfix_relayer_test.rb b/test/unit/postfix_relayer_test.rb index 9f5b78e216..f11ffb0518 100644 --- a/test/unit/postfix_relayer_test.rb +++ b/test/unit/postfix_relayer_test.rb @@ -20,7 +20,8 @@ module ActionMailbox assert_not result.failure? assert_requested :post, URL, body: file_fixture("welcome.eml").read, - basic_auth: [ "actionmailbox", INGRESS_PASSWORD ], headers: { "Content-Type" => "message/rfc822", "User-Agent" => "Postfix" } + basic_auth: [ "actionmailbox", INGRESS_PASSWORD ], + headers: { "Content-Type" => "message/rfc822", "User-Agent" => "Action Mailbox Postfix relayer" } end test "unsuccessfully relaying with invalid credentials" do |