lib/dato/json_api_deserializer.rb in dato-0.8.0 vs lib/dato/json_api_deserializer.rb in dato-0.8.1
- old
+ new
@@ -1,8 +1,9 @@
# frozen_string_literal: true
-require 'dato/json_schema_relationships'
+require "dato/json_schema_relationships"
+
module Dato
class JsonApiDeserializer
attr_reader :schema
def initialize(schema)
@@ -26,24 +27,22 @@
result[:meta] = data[:meta] if data[:meta]
result.merge!(data[:attributes]) if data[:attributes]
if data[:relationships]
relationships.each do |relationship, meta|
- if data[:relationships][relationship]
- rel_data = data[:relationships][relationship][:data]
+ next unless data[:relationships][relationship]
- result[relationship] = if meta[:types].length > 1
- rel_data
- else
- if !rel_data
- nil
- elsif meta[:collection]
- rel_data.map { |ref| ref[:id] }
- else
- rel_data[:id]
- end
- end
- end
+ rel_data = data[:relationships][relationship][:data]
+
+ result[relationship] = if meta[:types].length > 1
+ rel_data
+ elsif !rel_data
+ nil
+ elsif meta[:collection]
+ rel_data.map { |ref| ref[:id] }
+ else
+ rel_data[:id]
+ end
end
end
result.with_indifferent_access
end