lib/dato/json_api_serializer.rb in dato-0.7.16 vs lib/dato/json_api_serializer.rb in dato-0.7.17
- old
+ new
@@ -21,12 +21,14 @@
end
data[:type] = type
data[:attributes] = serialized_attributes(resource)
- if relationships.any?
- data[:relationships] = serialized_relationships(resource)
+ serialized_relationships = serialized_relationships(resource)
+
+ if serialized_relationships
+ data[:relationships] = serialized_relationships
end
{ data: data }
end
@@ -80,11 +82,11 @@
elsif required_relationships.include?(relationship)
throw "Required attribute: #{relationship}"
end
end
- result
+ result.empty? ? nil : result
end
def attributes(resource)
if type == 'item'
return resource.keys.map(&:to_sym) - %i[
@@ -108,10 +110,14 @@
def relationships
@relationships ||= JsonSchemaRelationships.new(link.schema).relationships
end
def required_relationships
- (link_relationships.required || []).map(&:to_sym)
+ if link.schema.properties['data'].required.include?("relationships")
+ (link_relationships.required || []).map(&:to_sym)
+ else
+ []
+ end
end
def link_attributes
link.schema.properties['data'].properties['attributes']
end