Sha256: 041e828222a0289c525fc353946b5b18ea9a1253d53e543dd7c15c153a93a4ac
Contents?: true
Size: 835 Bytes
Versions: 6
Compression:
Stored size: 835 Bytes
Contents
module Dato class JsonApiDeserializer def deserialize(data) data = data[:data] if data.is_a? Array data.map { |resource| deserialize_resource(resource) } else deserialize_resource(data) end end def deserialize_resource(data) result = { id: data[:id] } result.merge!(data[:attributes]) relationships = data.delete(:relationships) if relationships relationships.each do |key, data| data = data["data"] value = if data.is_a? Array data.map { |ref| ref["id"] } elsif data.is_a? Hash data[:id] else nil end result[key] = value end end result.with_indifferent_access end end end
Version data entries
6 entries across 6 versions & 1 rubygems