Class: Agave::JsonApiDeserializer
- Inherits:
-
Object
- Object
- Agave::JsonApiDeserializer
- Defined in:
- lib/agave/json_api_deserializer.rb
Instance Method Summary collapse
Instance Method Details
#deserialize(data) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/agave/json_api_deserializer.rb', line 4 def deserialize(data) data = data[:data] if data.is_a? Array data.map { |resource| deserialize_resource(resource) } else deserialize_resource(data) end end |
#deserialize_resource(data) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/agave/json_api_deserializer.rb', line 14 def deserialize_resource(data) result = { id: data[:id] } if data[:attributes] result.merge!(data[:attributes]) end relationships = data.delete(:relationships) if relationships relationships.each do |key, handle| handle_data = handle['data'] value = if handle_data.is_a? Array handle_data.map { |ref| ref['id'] } elsif handle_data.is_a? Hash handle_data[:id] end result[key] = value end end result.with_indifferent_access end |