Sha256: c607e8ef48fdf855a7cf5e50a13b2dda3829af62f12e03aa50ab6caa661c40c1

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require "creditsafe/namespace"

module Creditsafe
  module Request
    class CompanyReport
      def initialize(company_id, custom_data)
        @company_id = company_id
        @custom_data = custom_data
      end

      # rubocop:disable Metrics/MethodLength
      def message
        message = {
          "#{Creditsafe::Namespace::OPER}:companyId" => company_id.to_s,
          "#{Creditsafe::Namespace::OPER}:reportType" => "Full",
          "#{Creditsafe::Namespace::OPER}:language" => "EN",
        }

        unless custom_data.nil?
          message["#{Creditsafe::Namespace::OPER}:customData"] = {
            "#{Creditsafe::Namespace::DAT}:Entries" => {
              "#{Creditsafe::Namespace::DAT}:Entry" => custom_data_entries,
            },
          }
        end

        message
      end
      # rubocop:enable Metrics/MethodLength

      private

      def custom_data_entries
        custom_data.map { |key, value| { :@key => key, :content! => value } }
      end

      attr_reader :company_id, :custom_data
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
creditsafe-0.7.0 lib/creditsafe/request/company_report.rb
creditsafe-0.6.3 lib/creditsafe/request/company_report.rb
creditsafe-0.6.1 lib/creditsafe/request/company_report.rb
creditsafe-0.5.1 lib/creditsafe/request/company_report.rb