66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/jsonapi/processor.rb', line 66
def find
filters = params[:filters]
include_directives = params[:include_directives]
sort_criteria = params.fetch(:sort_criteria, [])
paginator = params[:paginator]
fields = params[:fields]
verified_filters = resource_klass.verify_filters(filters, context)
resource_records = resource_klass.find(verified_filters,
context: context,
include_directives: include_directives,
sort_criteria: sort_criteria,
paginator: paginator,
fields: fields)
page_options = {}
if (JSONAPI.configuration.top_level_meta_include_record_count ||
(paginator && paginator.class.requires_record_count))
page_options[:record_count] = resource_klass.find_count(verified_filters,
context: context,
include_directives: include_directives)
end
if (JSONAPI.configuration.top_level_meta_include_page_count && page_options[:record_count])
page_options[:page_count] = paginator.calculate_page_count(page_options[:record_count])
end
if JSONAPI.configuration. && paginator
page_options[:pagination_params] = paginator.links_page_params(page_options)
end
return JSONAPI::ResourcesOperationResult.new(:ok, resource_records, page_options)
end
|