Sha256: 27eb31a805e9ed4ac39f85837c159e44aa8c67cf3b4ebbfd66434517d7b4fff7
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
module Axel module ServiceResource class PayloadParser def initialize(payload) self.payload = ActiveSupport::HashWithIndifferentAccess.new payload end def parsed [payload, result, metadata, remote_errors] end private attr_accessor :payload def metadata Payload::Metadata.new bare_metadata end def remote_errors Payload::Errors.new bare_remote_errors end def result (payload[:result] || backup_result ).with_indifferent_access end def bare_metadata (payload[:metadata] || {} ).with_indifferent_access end def bare_remote_errors raw = payload[:errors] || payload[:error] || {} raw = { messages: raw } if raw.is_a?(Array) raw.with_indifferent_access end def payload_is_enveloped? payload.is_a?(Hash) && payload.has_key?(:metadata) && payload.has_key?(:result) end def backup_result payload_is_enveloped? ? {} : payload end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
axel-0.0.1 | app/models/axel/service_resource/payload_parser.rb |