Sha256: fc18494acc32f595a5ac7a74584463d85c2b38083ec882b22a4865ec260c32b9

Contents?: true

Size: 878 Bytes

Versions: 1

Compression:

Stored size: 878 Bytes

Contents

# frozen_string_literal: true
module Europeana
  module Logging
    module LogSessionId
      extend ActiveSupport::Concern

      ##
      # Overrides `#logger` in controller to first set session via
      # `Europeana::Logging::SessionLogging#session=`
      def logger(*args)
        super.session_id = session_id_from_session unless @_request.nil?
        super(*args)
      end

      ##
      # Lograge payload
      def append_info_to_payload(payload)
        super
        payload[:session_id] = session_id_from_session unless session_id_from_session.blank?

        # Cloudflare client IP and country data
        payload[:cf_connecting_ip] = request.headers['CF-Connecting-IP']
        payload[:cf_ipcountry] = request.headers['CF-IPCountry']
      end

      def session_id_from_session
        session.respond_to?(:id) ? session.id : nil
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
europeana-logging-0.2.6 app/controllers/concerns/europeana/logging/log_session_id.rb