# 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