module RevelryData::Resource
Public Instance Methods
base_response_meta()
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 76 def base_response_meta { current_user: current_user, csrf_token: form_authenticity_token, current_org: current_user.try(:org), flashes: flash, } end
fmt_is_json_api?()
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 47 def fmt_is_json_api? request.format == 'json' end
new()
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 10 def new if respond_to? :process_request_operations process_request_operations else process_request end end
process_request()
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 28 def process_request @request = JSONAPI::Request.new(params, context: context, key_formatter: key_formatter, server_error_callbacks: (self.class.server_error_callbacks || [])) unless @request.errors.empty? render_errors(@request.errors) else operation_results = create_operations_processor.process(@request) render_results(operation_results) end rescue => e handle_exceptions(e) ensure if response.body.size > 0 && fmt_is_json_api? response.headers['Content-Type'] = JSONAPI::MEDIA_TYPE end end
render_results(operation_results)
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 59 def render_results(operation_results) response_doc = create_response_document(operation_results) respond_with response_doc.contents do |fmt| fmt.html do @json_api = response_doc.contents render status: response_doc.status end fmt.json do render json: response_doc.contents, status: response_doc.status end fmt.props do render json: response_doc.contents, status: response_doc.status end end end
setup_request()
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 18 def setup_request @request = JSONAPI::Request.new(params, { context: context, key_formatter: key_formatter }) render_errors(@request.errors) unless @request.errors.empty? rescue => e handle_exceptions(e) end
setup_response()
click to toggle source
# File lib/revelry_data/resource_controller_concern.rb, line 51 def setup_response return unless fmt_is_json_api? if response.body.size > 0 response.headers['Content-Type'] = JSONAPI::MEDIA_TYPE end end