Class: Rack::Queries::App::Controller
- Inherits:
-
Object
- Object
- Rack::Queries::App::Controller
- Defined in:
- lib/rack/queries/app.rb
Instance Method Summary collapse
-
#call(env) ⇒ Object
Thought about refactoring this to split it out into multiple objects, but then thought better of it.
Instance Method Details
#call(env) ⇒ Object
Thought about refactoring this to split it out into multiple objects, but then thought better of it. If we end up adding more API endpoints then we can do something smart about it, but for now it’s fine. rubocop:disable AbcSize, CyclomaticComplexity, MethodLength
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rack/queries/app.rb', line 11 def call(env) return not_found unless env[REQUEST_METHOD] case Utils.unescape(env[PATH_INFO]) when %r{\A/queries/(.+)/opts/(.+)\z}i values = Cache.opts_for($1, $2) values ? json(values: values) : not_found when %r{\A/queries/(.+)\z}i query = Cache.query_for($1) return not_found unless query params = Request.new(env).params json(results: query.new.run(params)) when '/queries' json(queries: Cache.queries) else not_found end end |