Class: Webhookdb::Async::AuditLogger

Inherits:
Amigo::AuditLogger
  • Object
show all
Includes:
Appydays::Loggable
Defined in:
lib/webhookdb/async/audit_logger.rb

Constant Summary collapse

MAX_STR_LEN =
64
STR_PREFIX_LEN =
12

Instance Method Summary collapse

Instance Method Details

#perform(event_json) ⇒ Object



14
15
16
17
18
# File 'lib/webhookdb/async/audit_logger.rb', line 14

def perform(event_json)
  j2 = event_json.dup
  j2["payload"] = self.trim_long_strings(j2["payload"], max_str_len: MAX_STR_LEN, str_prefix_len: STR_PREFIX_LEN)
  super(j2)
end

#trim_long_strings(v, max_str_len:, str_prefix_len:) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/webhookdb/async/audit_logger.rb', line 20

def trim_long_strings(v, max_str_len:, str_prefix_len:)
  case v
    when Hash
      v.transform_values do |hv|
        self.trim_long_strings(hv, max_str_len:, str_prefix_len:)
      end
    when Array
      v.map { |item| self.trim_long_strings(item, max_str_len:, str_prefix_len:) }
    when String
      if v.size > max_str_len
        v[..str_prefix_len] + "..."
      else
        v
      end
    else
      v
  end
end