Class: JSONAPI::FindOperation
- Defined in:
- lib/jsonapi/operation.rb
Instance Attribute Summary collapse
-
#filters ⇒ Object
readonly
Returns the value of attribute filters.
-
#include_directives ⇒ Object
readonly
Returns the value of attribute include_directives.
-
#paginator ⇒ Object
readonly
Returns the value of attribute paginator.
-
#sort_criteria ⇒ Object
readonly
Returns the value of attribute sort_criteria.
Attributes inherited from Operation
#options, #resource_klass, #transactional
Instance Method Summary collapse
- #apply ⇒ Object
-
#initialize(resource_klass, options = {}) ⇒ FindOperation
constructor
A new instance of FindOperation.
- #pagination_params ⇒ Object
- #record_count ⇒ Object
Constructor Details
#initialize(resource_klass, options = {}) ⇒ FindOperation
Returns a new instance of FindOperation.
19 20 21 22 23 24 25 26 |
# File 'lib/jsonapi/operation.rb', line 19 def initialize(resource_klass, = {}) @filters = [:filters] @include_directives = [:include_directives] @sort_criteria = .fetch(:sort_criteria, []) @paginator = [:paginator] @transactional = false super(resource_klass, ) end |
Instance Attribute Details
#filters ⇒ Object (readonly)
Returns the value of attribute filters.
17 18 19 |
# File 'lib/jsonapi/operation.rb', line 17 def filters @filters end |
#include_directives ⇒ Object (readonly)
Returns the value of attribute include_directives.
17 18 19 |
# File 'lib/jsonapi/operation.rb', line 17 def include_directives @include_directives end |
#paginator ⇒ Object (readonly)
Returns the value of attribute paginator.
17 18 19 |
# File 'lib/jsonapi/operation.rb', line 17 def paginator @paginator end |
#sort_criteria ⇒ Object (readonly)
Returns the value of attribute sort_criteria.
17 18 19 |
# File 'lib/jsonapi/operation.rb', line 17 def sort_criteria @sort_criteria end |
Instance Method Details
#apply ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/jsonapi/operation.rb', line 44 def apply resource_records = @resource_klass.find(@resource_klass.verify_filters(@filters, @context), context: @context, include_directives: @include_directives, sort_criteria: @sort_criteria, paginator: @paginator) = {} if JSONAPI.configuration.top_level_links_include_pagination [:pagination_params] = pagination_params end if JSONAPI.configuration. [:record_count] = record_count end return JSONAPI::ResourcesOperationResult.new(:ok, resource_records, ) rescue JSONAPI::Exceptions::Error => e return JSONAPI::ErrorsOperationResult.new(e.errors[0].code, e.errors) end |
#pagination_params ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/jsonapi/operation.rb', line 34 def pagination_params if @paginator && JSONAPI.configuration.top_level_links_include_pagination = {} [:record_count] = record_count if @paginator.class.requires_record_count return @paginator.links_page_params() else return {} end end |
#record_count ⇒ Object
28 29 30 31 32 |
# File 'lib/jsonapi/operation.rb', line 28 def record_count @_record_count ||= @resource_klass.find_count(@resource_klass.verify_filters(@filters, @context), context: @context, include_directives: @include_directives) end |