Class: OpenAPIRest::Operations::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_rest/operations/filter.rb

Overview

Rest filter operation

Instance Method Summary collapse

Constructor Details

#initialize(query_builder) ⇒ Filter

Returns a new instance of Filter.



7
8
9
# File 'lib/openapi_rest/operations/filter.rb', line 7

def initialize(query_builder)
  @query_builder = query_builder
end

Instance Method Details

#executeObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/openapi_rest/operations/filter.rb', line 11

def execute
  return if @query_builder.query.count.zero?

  unlocked_params = ActiveSupport::HashWithIndifferentAccess.new(@query_builder.query)

  @query_builder.api_model.model = if @query_builder.single?
                                     @query_builder.api_model.model.find_by(unlocked_params)
                                   else
                                     @query_builder.api_model.model.where(unlocked_params)
                                   end
end