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