Sha256: 0429dabb708534e66fb3f6e14deca6e16cf72a8e26d8b5a9c3455c6b34273539

Contents?: true

Size: 857 Bytes

Versions: 13

Compression:

Stored size: 857 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
      error_response message: "Forbidden", status: 403 
    end

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

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
introspective_grape-0.3.2 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.3.1 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.3.0 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.9 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.8 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.7 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.6 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.5 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.4 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.3 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.2 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.2.0 spec/dummy/app/api/error_handlers.rb
introspective_grape-0.1.9 spec/dummy/app/api/error_handlers.rb