about summary refs log tree commit diff
path: root/app/services/send_interaction_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/send_interaction_service.rb')
-rw-r--r--app/services/send_interaction_service.rb14
1 files changed, 12 insertions, 2 deletions
diff --git a/app/services/send_interaction_service.rb b/app/services/send_interaction_service.rb
index 34c8f9e34..ef38a748b 100644
--- a/app/services/send_interaction_service.rb
+++ b/app/services/send_interaction_service.rb
@@ -12,13 +12,23 @@ class SendInteractionService < BaseService
 
     return if block_notification?
 
-    envelope = salmon.pack(@xml, @source_account.keypair)
-    delivery = salmon.post(@target_account.salmon_url, envelope)
+    delivery = build_request.perform
+
     raise "Delivery failed for #{target_account.salmon_url}: HTTP #{delivery.code}" unless delivery.code > 199 && delivery.code < 300
   end
 
   private
 
+  def build_request
+    request = Request.new(:post, @target_account.salmon_url, body: envelope)
+    request.add_headers('Content-Type' => 'application/magic-envelope+xml')
+    request
+  end
+
+  def envelope
+    salmon.pack(@xml, @source_account.keypair)
+  end
+
   def block_notification?
     DomainBlock.blocked?(@target_account.domain)
   end