diaspora/app/controllers/api/v1/base_controller.rb
Frank Rousseau 317b78394a Improve API error management
* Fix active record not found case
* Display backtrace in error logs
2018-12-30 22:31:33 +01:00

38 lines
1,016 B
Ruby

# frozen_string_literal: true
module Api
module V1
class BaseController < ApplicationController
include Api::OpenidConnect::ProtectedResourceEndpoint
protected
rescue_from Exception do |e|
logger.error e.message
logger.error e.backtrace.join("\n")
render json: {error: e.message}, status: 500
end
rescue_from ActiveRecord::RecordNotFound do |e|
logger.error e.message
render json: {error: I18n.t("api.error.not_found")}, status: 404
end
rescue_from ActiveRecord::RecordInvalid do |e|
logger.error e.message
render json: {error: e.to_s}, status: 400
end
rescue_from ActionController::ParameterMissing do |e|
logger.error e.message
render json: {
error: I18n.t("api.error.wrong_parameters"),
message: e.message
}, status: 400
end
def current_user
current_token ? current_token.authorization.user : nil
end
end
end
end