Module: ManageIQ::API::Common::ApplicationControllerMixins::RequestBodyValidation

Defined in:
lib/manageiq/api/common/application_controller_mixins/request_body_validation.rb

Defined Under Namespace

Classes: BodyParseError

Class Method Summary collapse

Class Method Details

.included(other) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/manageiq/api/common/application_controller_mixins/request_body_validation.rb', line 9

def self.included(other)
  ActionController::Parameters.action_on_unpermitted_parameters = :raise

  other.include(OpenapiEnabled)

  other.before_action(:validate_request)

  other.rescue_from(ActionController::UnpermittedParameters) do |exception|
    error_document = ManageIQ::API::Common::ErrorDocument.new.add(400, exception.message)
    render :json => error_document.to_h, :status => error_document.status
  end

  other.rescue_from(ManageIQ::API::Common::ApplicationControllerMixins::RequestBodyValidation::BodyParseError) do |_exception|
    error_document = ManageIQ::API::Common::ErrorDocument.new.add(400, "Failed to parse request body, expected JSON")
    render :json => error_document.to_h, :status => error_document.status
  end
end