RedHatInsights/topological_inventory-providers-common

View on GitHub
lib/topological_inventory/providers/common/mixins/x_rh_headers.rb

Summary

Maintainability
A
0 mins
Test Coverage
F
57%
module TopologicalInventory
  module Providers
    module Common
      module Mixins
        module XRhHeaders
          def account_number_by_identity(identity)
            return @account_number if @account_number
            return if identity.try(:[], 'x-rh-identity').nil?

            identity_hash = JSON.parse(Base64.decode64(identity['x-rh-identity']))
            @account_number = identity_hash.dig('identity', 'account_number')
          rescue JSON::ParserError => e
            logger.error_ext(operation, "Failed to parse identity header: #{e.message}")
            nil
          end

          def identity_by_account_number(account_number)
            @identity ||= {"x-rh-identity" => Base64.strict_encode64({"identity" => {"account_number" => account_number, "user" => {"is_org_admin" => true}}}.to_json)}
          end
        end
      end
    end
  end
end