Module: Onelinejson::AppControllerMethods
Instance Method Summary collapse
- #append_info_to_payload(payload) ⇒ Object
- #extract_headers(headers) ⇒ Object
- #extract_params(params) ⇒ Object
- #trim_values(hash) ⇒ Object
Instance Method Details
#append_info_to_payload(payload) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/onelinejson.rb', line 96 def append_info_to_payload(payload) super parameters = extract_params(params) parameters = trim_values(parameters) headers = extract_headers(request.headers) payload[:request] = { params: parameters, headers: headers, ip: request.ip, uuid: request.env['action_dispatch.request_id'], controller: self.class.name, action: action_name, date: Time.now.utc.iso8601, } u_id = @current_user_id || (@current_user && @current_user.id) if u_id.present? payload[:request][:user_id] = u_id.to_i end end |
#extract_headers(headers) ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'lib/onelinejson.rb', line 76 def extract_headers(headers) if headers.respond_to?(:env) headers.env elsif headers.respond_to?(:to_hash) headers.to_hash end.select do |k, v| k =~ /^HTTP_/ && !REJECTED_HEADERS.any? {|regex| k =~ regex} end end |
#extract_params(params) ⇒ Object
86 87 88 89 90 91 92 93 94 |
# File 'lib/onelinejson.rb', line 86 def extract_params(params) params.reject do |k,v| k == 'controller' || k == 'action' || (defined?(ActionDispatch) && v.is_a?(ActionDispatch::Http::UploadedFile)) || v.is_a?(Hash) || REJECTED_PARAMS.include?(k.to_s.downcase) end end |
#trim_values(hash) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/onelinejson.rb', line 61 def trim_values(hash) Hash[hash.map do |k, v| if v.is_a? String trimmed = if v.size > ENTRY_MAX_LENGTH v[0, ENTRY_MAX_LENGTH-1] + ELIP else v end [k, trimmed] else [k, v] end end] end |