refactor: add request_logs methods
it avoids having to change lograge.rb for adding an entry
This commit is contained in:
parent
52752c95ec
commit
8c0d2bb8cb
7 changed files with 26 additions and 35 deletions
|
@ -14,10 +14,10 @@ class API::V2::DossiersController < API::V2::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def append_info_to_payload(payload)
|
def request_logs(logs)
|
||||||
super
|
super
|
||||||
if dossier.present?
|
if dossier.present?
|
||||||
payload.merge!(ds_dossier_id: dossier.id.to_s, ds_procedure_id: dossier.procedure.id.to_s)
|
logs.merge!(ds_dossier_id: dossier.id.to_s, ds_procedure_id: dossier.procedure.id.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -18,10 +18,10 @@ class API::V2::GraphqlController < API::V2::BaseController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def append_info_to_payload(payload)
|
def request_logs(logs)
|
||||||
super
|
super
|
||||||
|
|
||||||
payload.merge!(@query_info.presence || {})
|
logs.merge!(@query_info.presence || {})
|
||||||
end
|
end
|
||||||
|
|
||||||
def process_action(*args)
|
def process_action(*args)
|
||||||
|
|
|
@ -224,23 +224,26 @@ class ApplicationController < ActionController::Base
|
||||||
def append_info_to_payload(payload)
|
def append_info_to_payload(payload)
|
||||||
super
|
super
|
||||||
|
|
||||||
payload.merge!({
|
payload[:to_log] = {}
|
||||||
|
request_logs(payload[:to_log])
|
||||||
|
end
|
||||||
|
|
||||||
|
def request_logs(logs)
|
||||||
|
logs.merge!({
|
||||||
user_agent: request.user_agent,
|
user_agent: request.user_agent,
|
||||||
user_id: current_user&.id,
|
user_id: current_user&.id,
|
||||||
user_roles: current_user_roles,
|
user_roles: current_user_roles,
|
||||||
client_ip: request.headers['X-Forwarded-For'],
|
client_ip: request.headers['X-Forwarded-For'],
|
||||||
request_id: request.headers['X-Request-ID']
|
request_id: request.headers['X-Request-ID']
|
||||||
}.compact)
|
})
|
||||||
|
|
||||||
if browser.known?
|
if browser.known?
|
||||||
payload.merge!({
|
logs.merge!({
|
||||||
browser: browser.name,
|
browser: browser.name,
|
||||||
browser_version: browser.version.to_s,
|
browser_version: browser.version.to_s,
|
||||||
platform: browser.platform.name
|
platform: browser.platform.name
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
payload
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def reject
|
def reject
|
||||||
|
|
|
@ -38,21 +38,21 @@ module Manager
|
||||||
def append_info_to_payload(payload)
|
def append_info_to_payload(payload)
|
||||||
super
|
super
|
||||||
|
|
||||||
payload.merge!({
|
to_log = {
|
||||||
user_agent: request.user_agent,
|
user_agent: request.user_agent,
|
||||||
user_id: current_user&.id,
|
user_id: current_user&.id,
|
||||||
user_email: current_user&.email
|
user_email: current_user&.email
|
||||||
}.compact)
|
}
|
||||||
|
|
||||||
if browser.known?
|
if browser.known?
|
||||||
payload.merge!({
|
to_log.merge!({
|
||||||
browser: browser.name,
|
browser: browser.name,
|
||||||
browser_version: browser.version.to_s,
|
browser_version: browser.version.to_s,
|
||||||
platform: browser.platform.name
|
platform: browser.platform.name
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
payload
|
payload[:to_log] = to_log
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,30 +6,18 @@ Rails.application.configure do
|
||||||
# injected by ansible.
|
# injected by ansible.
|
||||||
if !config.lograge.custom_options
|
if !config.lograge.custom_options
|
||||||
config.lograge.custom_options = lambda do |event|
|
config.lograge.custom_options = lambda do |event|
|
||||||
{
|
hash = {
|
||||||
type: 'tps',
|
type: 'tps',
|
||||||
source: ENV['SOURCE'],
|
source: ENV['SOURCE'],
|
||||||
tags: ['request', event.payload[:exception] ? 'exception' : nil].compact,
|
tags: ['request', event.payload[:exception] ? 'exception' : nil].compact,
|
||||||
user_id: event.payload[:user_id],
|
|
||||||
user_email: event.payload[:user_email],
|
|
||||||
user_roles: event.payload[:user_roles],
|
|
||||||
user_agent: event.payload[:user_agent],
|
|
||||||
graphql_query: event.payload[:graphql_query],
|
|
||||||
graphql_variables: event.payload[:graphql_variables],
|
|
||||||
graphql_null_error: event.payload[:graphql_null_error],
|
|
||||||
graphql_timeout_error: event.payload[:graphql_timeout_error],
|
|
||||||
graphql_mutation: event.payload[:graphql_mutation],
|
|
||||||
ds_procedure_id: event.payload[:ds_procedure_id],
|
|
||||||
ds_dossier_id: event.payload[:ds_dossier_id],
|
|
||||||
browser: event.payload[:browser],
|
|
||||||
browser_version: event.payload[:browser_version],
|
|
||||||
platform: event.payload[:platform],
|
|
||||||
client_ip: event.payload[:client_ip],
|
|
||||||
request_id: event.payload[:request_id],
|
|
||||||
process: {
|
process: {
|
||||||
pid: Process.pid
|
pid: Process.pid
|
||||||
}
|
}
|
||||||
}.compact
|
}
|
||||||
|
|
||||||
|
hash.merge!(event.payload[:to_log])
|
||||||
|
|
||||||
|
hash.compact
|
||||||
end
|
end
|
||||||
|
|
||||||
config.lograge.custom_payload do |controller|
|
config.lograge.custom_payload do |controller|
|
||||||
|
|
|
@ -40,7 +40,7 @@ describe ApplicationController, type: :controller do
|
||||||
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
||||||
payload.delete(key)
|
payload.delete(key)
|
||||||
end
|
end
|
||||||
expect(payload).to eq({
|
expect(payload[:to_log].compact).to eq({
|
||||||
user_agent: 'Rails Testing',
|
user_agent: 'Rails Testing',
|
||||||
user_roles: 'Guest'
|
user_roles: 'Guest'
|
||||||
})
|
})
|
||||||
|
@ -59,7 +59,7 @@ describe ApplicationController, type: :controller do
|
||||||
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
||||||
payload.delete(key)
|
payload.delete(key)
|
||||||
end
|
end
|
||||||
expect(payload).to eq({
|
expect(payload[:to_log].compact).to eq({
|
||||||
user_agent: 'Rails Testing',
|
user_agent: 'Rails Testing',
|
||||||
user_id: current_user.id,
|
user_id: current_user.id,
|
||||||
user_roles: 'User'
|
user_roles: 'User'
|
||||||
|
@ -82,7 +82,7 @@ describe ApplicationController, type: :controller do
|
||||||
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
||||||
payload.delete(key)
|
payload.delete(key)
|
||||||
end
|
end
|
||||||
expect(payload).to eq({
|
expect(payload[:to_log].compact).to eq({
|
||||||
user_agent: 'Rails Testing',
|
user_agent: 'Rails Testing',
|
||||||
user_id: current_user.id,
|
user_id: current_user.id,
|
||||||
user_roles: 'User, Instructeur, Administrateur, SuperAdmin'
|
user_roles: 'User, Instructeur, Administrateur, SuperAdmin'
|
||||||
|
|
|
@ -13,7 +13,7 @@ describe Manager::ApplicationController, type: :controller do
|
||||||
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
[:db_runtime, :view_runtime, :variant, :rendered_format].each do |key|
|
||||||
payload.delete(key)
|
payload.delete(key)
|
||||||
end
|
end
|
||||||
expect(payload).to eq({
|
expect(payload[:to_log]).to eq({
|
||||||
user_agent: 'Rails Testing',
|
user_agent: 'Rails Testing',
|
||||||
user_id: current_user.id,
|
user_id: current_user.id,
|
||||||
user_email: current_user.email
|
user_email: current_user.email
|
||||||
|
|
Loading…
Add table
Reference in a new issue