Class: Autoselect::Response
- Inherits:
-
Object
- Object
- Autoselect::Response
- Defined in:
- lib/autoselect/response.rb
Overview
lib/autoselect/response.rb
Wraps all autoselect responses into a consistent envelope.
Config responses (no term) populate config and leave response nil.
Term responses populate request, level, response, and optionally next_level.
Instance Method Summary collapse
-
#as_json ⇒ Hash
The full response hash, suitable for
render json:. -
#initialize(config:, request:, level:, results:, next_level:, level_map:) ⇒ Response
constructor
A new instance of Response.
Constructor Details
#initialize(config:, request:, level:, results:, next_level:, level_map:) ⇒ Response
Returns a new instance of Response.
15 16 17 18 19 20 21 22 |
# File 'lib/autoselect/response.rb', line 15 def initialize(config:, request:, level:, results:, next_level:, level_map:) @config = config @request = request @level = level @results = results @next_level = next_level @level_map = level_map end |
Instance Method Details
#as_json ⇒ Hash
Returns the full response hash, suitable for render json:.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/autoselect/response.rb', line 25 def as_json if @config { resource: @config[:resource], levels: @config[:levels], operators: @config[:operators], map: @config[:map], user_preferences: @config[:user_preferences], config: @config, response: nil } else h = { request: @request, level: @level, response: @results || [], config: nil } h[:next_level] = @next_level if @next_level.present? h end end |