Skip to content

Commit 21dd5b6

Browse files
committed
Processor#show_related_resources should pass options to result if they are calculated
1 parent 3a02a4d commit 21dd5b6

1 file changed

Lines changed: 11 additions & 15 deletions

File tree

lib/jsonapi/processor.rb

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -186,32 +186,28 @@ def show_related_resources
186186
serializer,
187187
find_options)
188188

189+
opts = result_options
189190
if ((JSONAPI.configuration.top_level_meta_include_record_count) ||
190191
(paginator && paginator.class.requires_record_count) ||
191192
(JSONAPI.configuration.top_level_meta_include_page_count))
192193

193-
record_count = source_resource.class.count_related(
194+
opts[:record_count] = source_resource.class.count_related(
194195
source_resource.identity,
195196
relationship_type,
196197
find_options)
197198
end
198199

199-
if (JSONAPI.configuration.top_level_meta_include_page_count && record_count)
200-
page_count = paginator.calculate_page_count(record_count)
200+
if (JSONAPI.configuration.top_level_meta_include_page_count && opts[:record_count])
201+
opts[:page_count] = paginator.calculate_page_count(opts[:record_count])
201202
end
202203

203-
pagination_params = if paginator && JSONAPI.configuration.top_level_links_include_pagination
204-
page_options = {}
205-
page_options[:record_count] = record_count if paginator.class.requires_record_count
206-
paginator.links_page_params(page_options.merge(fetched_resources: resource_set))
207-
else
208-
{}
209-
end
210-
211-
opts = result_options
212-
opts.merge!(pagination_params: pagination_params) if JSONAPI.configuration.top_level_links_include_pagination
213-
opts.merge!(record_count: record_count) if JSONAPI.configuration.top_level_meta_include_record_count
214-
opts.merge!(page_count: page_count) if JSONAPI.configuration.top_level_meta_include_page_count
204+
opts[:pagination_params] = if paginator && JSONAPI.configuration.top_level_links_include_pagination
205+
page_options = {}
206+
page_options[:record_count] = opts[:record_count] if paginator.class.requires_record_count
207+
paginator.links_page_params(page_options.merge(fetched_resources: resource_set))
208+
else
209+
{}
210+
end
215211

216212
return JSONAPI::RelatedResourcesSetOperationResult.new(:ok,
217213
source_resource,

0 commit comments

Comments
 (0)