Class: Griddler::Sparkpost::Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/griddler/sparkpost/adapter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Adapter

Returns a new instance of Adapter.



6
7
8
# File 'lib/griddler/sparkpost/adapter.rb', line 6

def initialize(params)
  @params = params
end

Class Method Details

.normalize_params(params) ⇒ Object



10
11
12
13
# File 'lib/griddler/sparkpost/adapter.rb', line 10

def self.normalize_params(params)
  adapter = new(params)
  adapter.normalize_params
end

Instance Method Details

#normalize_paramsObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/griddler/sparkpost/adapter.rb', line 15

def normalize_params
  msg = params['_json'][0]['msys']['relay_message']
  content = msg['content']
  mail = Mail.read_from_string(content['email_rfc822'])
  # SparkPost documentation isn't clear on friendly_from.
  # In case there's a full email address (e.g. "Test User <[email protected]>"), strip out junk
  clean_from = msg['friendly_from'].split('<').last.delete('>').strip
  params.merge(
    to: content['to'],
    from: clean_from,
    cc: content['cc'].nil? ? [] : content['cc'],
    subject: content['subject'],
    text: content['text'],
    html: content['html'],
    headers: headers_raw(content['headers']), # spec calls for raw headers, so convert back
    attachments: attachment_files(mail)
  )
end