Class: OpenehrRails::QueriesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/openehr_rails/queries_controller.rb

Overview

openEHR REST API QUERY resource (base URL: /v1/query/aql). Thin wrapper over OpenehrRails::Aql.execute (see lib/openehr_rails/aql/): validate -> build Dataset from the RM graph -> execute -> RESULT_SET JSON.

Instance Method Summary collapse

Instance Method Details

#executeObject

GET /v1/query/aql?q=...&query_parameters="min":100 POST /v1/query/aql { "q": "...", "query_parameters": ... }



24
25
26
27
28
29
30
# File 'app/controllers/openehr_rails/queries_controller.rb', line 24

def execute
  q = query_text
  return render json: { error: 'q is required' }, status: :bad_request if q.blank?

  result = OpenehrRails::Aql.execute(q, params: query_parameters)
  render json: { q: q }.merge(JSON.parse(result.to_json))
end

#openehr_access_scopeObject



14
15
16
# File 'app/controllers/openehr_rails/queries_controller.rb', line 14

def openehr_access_scope
  action_name == 'execute' ? :rest_api : :admin
end

#showObject

GET /query -- HTML console. Executes via fetch against POST /v1/query/aql below, so there is exactly one execution path.



20
# File 'app/controllers/openehr_rails/queries_controller.rb', line 20

def show; end