Module: Tracebook::InteractionsHelper

Defined in:
app/helpers/tracebook/interactions_helper.rb

Instance Method Summary collapse

Instance Method Details

#formatted_payload(payload, fallback_text = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/helpers/tracebook/interactions_helper.rb', line 20

def formatted_payload(payload, fallback_text = nil)
  case payload
  when Hash, Array
    JSON.pretty_generate(payload)
  when String
    payload
  when nil
    fallback_text.to_s
  else
    JSON.pretty_generate(payload.as_json)
  end
rescue JSON::GeneratorError, TypeError
  fallback_text ? fallback_text.to_s : payload.to_s
end

#payload_for(interaction, type) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/helpers/tracebook/interactions_helper.rb', line 7

def payload_for(interaction, type)
  inline = interaction.public_send("#{type}_payload")
  return inline unless inline.nil? || (inline.respond_to?(:empty?) && inline.empty?)

  blob = interaction.public_send("#{type}_payload_blob")
  return nil unless blob

  raw = blob.download
  JSON.parse(raw)
rescue JSON::ParserError
  raw
end