Sha256: 8068a6f6db141f50e4881e4bfc832fc4aa927efac613130664e6138c0605cd27
Contents?: true
Size: 1.8 KB
Versions: 9
Compression:
Stored size: 1.8 KB
Contents
# typed: false # Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.com/terms.html # TODO: sqreen/events require 'json' require 'sqreen/log' require 'sqreen/event' require 'sqreen/encoding_sanitizer' require 'sqreen/sensitive_data_redactor' module Sqreen # When a request is deeemed worthy of being sent to the backend class RequestRecord < Sqreen::Event attr_reader :redactor # @param [Hash] payload # @param [Sqreen::SensitiveDataRedactor] redactor def initialize(payload, redactor = nil) @redactor = redactor super(payload) end def observed (payload && payload[:observed]) || {} end def last_identify_args return nil unless observed[:sdk] observed[:sdk].reverse_each do |meth, _time, *args| next unless meth == :identify return args end nil end def processed_sdk_calls return [] unless observed[:sdk] auth_keys = last_identify_id observed[:sdk].map do |meth, time, *args| { :name => meth, :time => time, :args => inject_identifiers(args, meth, auth_keys), } end end private def inject_identifiers(args, meth, auth_keys) return args unless meth == :track && auth_keys track_opts = args[1] || {} if track_opts[:user_identifiers].nil? args[1] = track_opts.dup args[1][:user_identifiers] = auth_keys elsif track_opts[:user_identifiers] != auth_keys Sqreen.log.warn 'Sqreen.identify and Sqreen.track have been called ' \ 'with different user_identifiers values' end args end def last_identify_id args = last_identify_args args.first if args.respond_to? :first end end end
Version data entries
9 entries across 9 versions & 1 rubygems