@@ -55,25 +55,6 @@ def resource_identifier(serializer)
55
55
{ id : id , type : type }
56
56
end
57
57
58
- def add_relationships ( resource , name , serializers )
59
- resource [ :relationships ] ||= { }
60
- resource [ :relationships ] [ name ] ||= { data : [ ] }
61
- resource [ :relationships ] [ name ] [ :data ] += serializers . map { |serializer | resource_identifier ( serializer ) }
62
- end
63
-
64
- def add_relationship ( resource , name , serializer , val = nil )
65
- resource [ :relationships ] ||= { }
66
-
67
- resource [ :relationships ] [ name ] ||= { }
68
- resource [ :relationships ] [ name ] [ :data ] = if val
69
- val
70
- elsif serializer && serializer . object
71
- resource_identifier ( serializer )
72
- else
73
- nil
74
- end
75
- end
76
-
77
58
def add_included ( resource_name , serializers , parent = nil )
78
59
unless serializers . respond_to? ( :each )
79
60
return unless serializers . object
@@ -148,22 +129,24 @@ def check_assoc(assoc)
148
129
def add_resource_relationships ( attrs , serializer , options = { } )
149
130
options [ :add_included ] = options . fetch ( :add_included , true )
150
131
132
+ attrs [ :relationships ] ||= { } if serializer . associations . any?
151
133
serializer . associations . each do |association |
152
134
key = association . key
153
135
serializer = association . serializer
154
136
opts = association . options
155
-
156
- attrs [ :relationships ] ||= { }
157
-
158
- if serializer . respond_to? ( :each )
159
- add_relationships ( attrs , key , serializer )
160
- else
161
- if opts [ :virtual_value ]
162
- add_relationship ( attrs , key , nil , opts [ :virtual_value ] )
163
- else
164
- add_relationship ( attrs , key , serializer )
165
- end
166
- end
137
+ value = if serializer . respond_to? ( :each )
138
+ serializer . map { |s | resource_identifier ( s ) }
139
+ else
140
+ if opts [ :virtual_value ]
141
+ opts [ :virtual_value ]
142
+ elsif serializer && serializer . object
143
+ resource_identifier ( serializer )
144
+ else
145
+ nil
146
+ end
147
+ end
148
+
149
+ attrs [ :relationships ] [ association . key ] = { data : value }
167
150
168
151
if options [ :add_included ]
169
152
Array ( serializer ) . each do |s |
0 commit comments