class RecurlyEvent::Parser
Public Class Methods
from_payload(payload)
click to toggle source
# File lib/recurly_event/parser.rb, line 10 def self.from_payload(payload) JSON.parse(payload.to_json, object_class: OpenStruct) end
new(request)
click to toggle source
# File lib/recurly_event/parser.rb, line 14 def initialize(request) @request = request end
parse(request)
click to toggle source
# File lib/recurly_event/parser.rb, line 6 def self.parse(request) new(request) end
Public Instance Methods
event_name()
click to toggle source
# File lib/recurly_event/parser.rb, line 18 def event_name hash_from_request.first.first end
payload()
click to toggle source
# File lib/recurly_event/parser.rb, line 22 def payload payload = hash_from_request.first.last payload.merge("event" => event_name) end
Private Instance Methods
hash_from_request()
click to toggle source
# File lib/recurly_event/parser.rb, line 29 def hash_from_request # see https://recurly.readme.io/v2.0/page/webhooks for the xml structure @hash_from_request ||= begin xml_string = @request.body.respond_to?(:string) ? @request.body.string : @request.body.read Hash.from_xml(xml_string) end end