Sha256: 756289eccc67625eed699bfaa453b0f66fd6f84bc14c50afb21c34effea2852d

Contents?: true

Size: 865 Bytes

Versions: 2

Compression:

Stored size: 865 Bytes

Contents

require 'pundit'
module ErrorHandlers
  def self.included(m)
    m.rescue_from ActiveRecord::RecordInvalid do |e|
      error_response message: e.record.errors.to_a.uniq.join(', '), status: 400
    end

    m.rescue_from Grape::Exceptions::ValidationErrors do |e|
      error_response message: e.message, status: 400
    end

    m.rescue_from ActiveRecord::RecordNotFound do |e|
      error_response message: "Record not found! #{e.message}", status: 404
    end

    m.rescue_from ActiveRecord::InvalidForeignKey do |e|
      error_response message: "Join record not found! #{e.message}", status: 404
    end

    m.rescue_from Pundit::NotAuthorizedError do |e|
      error_response message: "Forbidden", status: 403 
    end

    m.rescue_from Pundit::NotDefinedError do |e|
      error_response message: "Policy not implemented", status: 501 
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
introspective_grape-0.0.4 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.0.3 spec/dummy/app/api/error_handlers.rb