Class: MailRoom::Delivery::Postback

Inherits:
Object
  • Object
show all
Defined in:
lib/mail_room/delivery/postback.rb

Overview

Postback Delivery method

Author:

  • Tony Pitale

Defined Under Namespace

Classes: Options

Instance Method Summary collapse

Constructor Details

#initialize(delivery_options) ⇒ Postback

Build a new delivery, hold the delivery options


59
60
61
62
# File 'lib/mail_room/delivery/postback.rb', line 59

def initialize(delivery_options)
  puts delivery_options
  @delivery_options = delivery_options
end

Instance Method Details

#deliver(message) ⇒ Object

deliver the message using Faraday to the configured delivery_options url

Parameters:

  • message (String)

    the email message as a string, RFC822 format


66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/mail_room/delivery/postback.rb', line 66

def deliver(message)
  connection = Faraday.new

  if @delivery_options.token_auth?
    connection.token_auth @delivery_options.token
  elsif @delivery_options.basic_auth?
    connection.basic_auth(
      @delivery_options.username,
      @delivery_options.password
    )
  end

  connection.post do |request|
    request.url @delivery_options.url
    request.body = message
    config_request_content_type(request)
    config_request_jwt_auth(request)
  end

  @delivery_options.logger.info({ delivery_method: 'Postback', action: 'message pushed', url: @delivery_options.url })
  true
end