Sha256: cbc9029981d252967409a0b8af82d520bcc16a696af6b885c08d24ee488ce98c
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true require 'savon' class Valvat class Lookup class Request VIES_WSDL_URL = 'https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl' def initialize(vat, options) @vat = Valvat(vat) @options = options || {} @requester = @options[:requester] && Valvat(@options[:requester]) end def perform Response.new( client.call(action, message: message, message_tag: message_tag) ) rescue Savon::SOAPFault => e Fault.new(e) end private def client Savon::Client.new({ wsdl: VIES_WSDL_URL, log: false, follow_redirects: true }.merge(@options[:savon] || {})) end def message add_requester({ country_code: @vat.vat_country_code, vat_number: @vat.to_s_wo_country }) end def message_tag @requester ? :checkVatApprox : :checkVat end def action @requester ? :check_vat_approx : :check_vat end def add_requester(message) return message unless @requester message[:requester_country_code] = @requester.vat_country_code message[:requester_vat_number] = @requester.to_s_wo_country message end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
valvat-1.1.1 | lib/valvat/lookup/request.rb |
valvat-1.1.0 | lib/valvat/lookup/request.rb |