Module: EIVO::Concerns::Rendering
- Extended by:
- ActiveSupport::Concern
- Included in:
- ApplicationController
- Defined in:
- app/controllers/eivo/concerns/rendering.rb
Instance Method Summary collapse
- #render_error(code, status: :bad_request, title: nil, detail: nil, source: nil) ⇒ Object
- #render_errors(errors, status: :bad_request) ⇒ Object
- #render_forbidden(_exception = nil) ⇒ Object
- #render_internal_server_error(_exception) ⇒ Object
- #render_model_errors(errors) ⇒ Object
- #render_not_found(_exception = nil) ⇒ Object
- #render_parameter_missing(exception) ⇒ Object
- #render_success(serializer = nil) ⇒ Object
- #render_unauthorized(_exception = nil) ⇒ Object
Instance Method Details
#render_error(code, status: :bad_request, title: nil, detail: nil, source: nil) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 55 def render_error(code, status: :bad_request, title: nil, detail: nil, source: nil) render_errors([{ code: code, title: title, detail: detail, source: source, status: ::Rack::Utils::SYMBOL_TO_STATUS_CODE[status].to_s }.compact], status: status) end |
#render_errors(errors, status: :bad_request) ⇒ Object
65 66 67 68 69 70 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 65 def render_errors(errors, status: :bad_request) data = { errors: errors } render json: ::MultiJson.dump(data), status: status end |
#render_forbidden(_exception = nil) ⇒ Object
23 24 25 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 23 def render_forbidden(_exception = nil) render_error 'forbidden', status: :forbidden end |
#render_internal_server_error(_exception) ⇒ Object
31 32 33 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 31 def render_internal_server_error(_exception) render_error 'internal_server_error', status: :internal_server_error end |
#render_model_errors(errors) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 39 def render_model_errors(errors) json_errors = errors.details.map do |attribute, attribute_errors| attribute_errors.map do |error| { code: error[:error], source: { parameter: attribute }, status: ::Rack::Utils::SYMBOL_TO_STATUS_CODE[:bad_request].to_s } end end render_errors json_errors.flatten end |
#render_not_found(_exception = nil) ⇒ Object
27 28 29 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 27 def render_not_found(_exception = nil) render_error 'not_found', status: :not_found end |
#render_parameter_missing(exception) ⇒ Object
35 36 37 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 35 def render_parameter_missing(exception) render_error 'parameter_missing', source: { parameter: exception.param } end |
#render_success(serializer = nil) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 8 def render_success(serializer = nil) if serializer render json: serializer.serialized_json else data = { data: nil } render json: ::MultiJson.dump(data) end end |
#render_unauthorized(_exception = nil) ⇒ Object
19 20 21 |
# File 'app/controllers/eivo/concerns/rendering.rb', line 19 def (_exception = nil) render_error 'unauthorized', status: :unauthorized end |