Merge remote-tracking branch 'origin/master' into repp-domains

This commit is contained in:
Karl Erik Õunapuu 2021-01-28 16:18:45 +02:00
commit 43e5b74668
No known key found for this signature in database
GPG key ID: C9DD647298A34764
29 changed files with 357 additions and 49 deletions

View file

@ -1,7 +1,7 @@
module Repp
module V1
class BaseController < ActionController::API # rubocop:disable Metrics/ClassLength
rescue_from ActiveRecord::RecordNotFound, with: :not_found_error
around_action :log_request
before_action :authenticate_user
before_action :validate_webclient_ca
before_action :check_ip_restriction
@ -9,22 +9,31 @@ module Repp
before_action :set_paper_trail_whodunnit
rescue_from ActionController::ParameterMissing, Apipie::ParamInvalid,
Apipie::ParamMissing do |exception|
render json: { code: 2003, message: exception }, status: :bad_request
private
def log_request
yield
rescue ActiveRecord::RecordNotFound
@response = { code: 2303, message: 'Object does not exist' }
render(json: @response, status: :not_found)
rescue ActionController::ParameterMissing, Apipie::ParamInvalid, Apipie::ParamMissing => e
@response = { code: 2003, message: e }
render(json: @response, status: :bad_request)
ensure
create_repp_log
end
after_action do
# rubocop:disable Metrics/AbcSize
def create_repp_log
ApiLog::ReppLog.create(
request_path: request.path, request_method: request.request_method,
request_params: request.params.except('route_info').to_json, uuid: request.try(:uuid),
response: @response.to_json, response_code: status, ip: request.ip,
response: @response.to_json, response_code: response.status, ip: request.ip,
api_user_name: current_user.try(:username),
api_user_registrar: current_user.try(:registrar).try(:to_s)
)
end
private
# rubocop:enable Metrics/AbcSize
def set_domain
registrar = current_user.registrar
@ -131,11 +140,6 @@ module Repp
render(json: @response, status: :unauthorized)
end
def not_found_error
@response = { code: 2303, message: 'Object does not exist' }
render(json: @response, status: :not_found)
end
end
end
end