Sha256: d436c3ed7be730cec4a4d3f6a9bb57603bba5044cccf3b528afab5170b702a38
Contents?: true
Size: 1.06 KB
Versions: 7
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true require_relative 'lookup/vies' require_relative 'lookup/hmrc' require_relative 'options' class Valvat class Lookup def initialize(vat, options = {}) @vat = Valvat(vat) @options = Valvat::Options(options) end def validate return false if !@options[:skip_local_validation] && !@vat.valid? return handle_error(response[:error]) if response[:error] response[:valid] && show_details? ? response : response[:valid] end class << self def validate(vat, options = {}) new(vat, options).validate end end private def response @response ||= webservice.new(@vat, @options).perform end def webservice return HMRC if @vat.vat_country_code == 'GB' VIES end def show_details? @options[:requester] || @options[:detail] end def handle_error(error) if error.is_a?(MaintenanceError) raise error if @options[:raise_error] else raise error unless @options[:raise_error] == false end end end end
Version data entries
7 entries across 7 versions & 1 rubygems