Sha256: 3c396cd11065f2452e7d89df4efe4c3a04b64b7b4fb9dbcdfb6d9cd3886208bf

Contents?: true

Size: 1013 Bytes

Versions: 8

Compression:

Stored size: 1013 Bytes

Contents

# frozen_string_literal: true

require 'creditsafe/base_model'
require 'creditsafe/models/company'

module Creditsafe
  module Models
    class Search < BaseModel
      ENDPOINT = 'companies'

      attributes :companies

      def self.find(reg_no, countries = Creditsafe.configuration.countries)
        result = get(ENDPOINT, regNo: reg_no, countries: countries.join(','))

        return nil unless successful_response?(result)

        build(json: result.body)
      end

      def self.where(params = {})
        unless params.key?(:countries)
          countries = Creditsafe.configuration.countries
          params = params.merge(countries: countries.join(','))
        end

        result = get(ENDPOINT, params)

        return nil unless successful_response?(result)

        build(json: result.body)
      end

      def self.build(json:)
        super.tap do |record|
          record.companies = json.fetch(:companies, []).map { |c| Company.build(json: c) }
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
creditsafe_connect-0.1.7 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.6 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.5 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.4 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.3 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.2 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.1 lib/creditsafe/models/search.rb
creditsafe_connect-0.1.0 lib/creditsafe/models/search.rb