Class: CmisServer::AtomPub::QueryController
- Inherits:
-
BaseController
- Object
- ActionController::Base
- CmisServer::ApplicationController
- BaseController
- CmisServer::AtomPub::QueryController
- Includes:
- RepositoryScopable
- Defined in:
- app/controllers/cmis_server/atom_pub/query_controller.rb
Instance Method Summary collapse
-
#query ⇒ Object
POST /query.
-
#queryable_types ⇒ Object
GET /query/types.
-
#validate_query ⇒ Object
POST /query/validate.
Methods included from RepositoryScopable
Methods inherited from BaseController
#raw_post_body, #render_standard_error, #request_entry_parser
Methods inherited from CmisServer::ApplicationController
Instance Method Details
#query ⇒ Object
POST /query
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/controllers/cmis_server/atom_pub/query_controller.rb', line 11 def query query_data = parse_query_request begin discovery_service = CmisServer::DiscoveryService.new(@repository, current_context) results = discovery_service.query( statement: query_data[:statement], search_all_versions: query_data[:search_all_versions], include_allowable_actions: query_data[:include_allowable_actions], include_relationships: query_data[:include_relationships], rendition_filter: query_data[:rendition_filter], max_items: query_data[:max_items], skip_count: query_data[:skip_count] ) respond_to do |format| format.atom_feed { render "cmis_server/atom_pub/query_results_feed", locals: { results: results } } format.json { render json: format_query_results_for_json(results) } end rescue => e render_error(e) end end |
#queryable_types ⇒ Object
GET /query/types
36 37 38 39 40 41 42 43 44 |
# File 'app/controllers/cmis_server/atom_pub/query_controller.rb', line 36 def queryable_types repository = repository_from_request queryable_types = repository.types.select { |_, type| type.queryable } respond_to do |format| format.atom_feed { render "cmis_server/atom_pub/queryable_types_feed", locals: { types: queryable_types } } format.json { render json: format_queryable_types_for_json(queryable_types) } end end |
#validate_query ⇒ Object
POST /query/validate
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/controllers/cmis_server/atom_pub/query_controller.rb', line 47 def validate_query query_data = parse_query_request begin discovery_service = CmisServer::DiscoveryService.new(@repository, current_context) validation_result = discovery_service.validate_query(query_data[:statement]) respond_to do |format| format.json { render json: { valid: validation_result[:valid], errors: validation_result[:errors] } } end rescue => e render_error(e) end end |