Sha256: 564a88f43af6fac4c7ae87f2ae256fd0d0ff78a5aab2c1f9a4846308a1d77518

Contents?: true

Size: 1015 Bytes

Versions: 6

Compression:

Stored size: 1015 Bytes

Contents

# frozen_string_literal: true

class Valvat
  class Lookup
    def initialize(vat, options = {})
      @vat = Valvat(vat)
      @options = options || {}
      @options[:requester] ||= @options[:requester_vat]
    end

    def validate
      return false if !@options[:skip_local_validation] && !@vat.valid?
      return handle_vies_error(response[:error]) if response[:error]

      response[:valid] && show_details? ? response.to_hash : response[:valid]
    end

    class << self
      def validate(vat, options = {})
        new(vat, options).validate
      end
    end

    private

    def valid?
      response[:valid]
    end

    def response
      @response ||= Request.new(@vat, @options).perform
    end

    def show_details?
      @options[:requester] || @options[:detail]
    end

    def handle_vies_error(error)
      if error.is_a?(ViesMaintenanceError)
        raise error if @options[:raise_error]
      else
        raise error unless @options[:raise_error] == false
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
valvat-1.1.5 lib/valvat/lookup.rb
valvat-1.1.4 lib/valvat/lookup.rb
valvat-1.1.3 lib/valvat/lookup.rb
valvat-1.1.2 lib/valvat/lookup.rb
valvat-1.1.1 lib/valvat/lookup.rb
valvat-1.1.0 lib/valvat/lookup.rb