module VatCheck::Request
Public Class Methods
lookup(vat)
click to toggle source
# File lib/vat_check/requests.rb, line 5 def self.lookup(vat) client = Savon.client(wsdl: 'https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl', follow_redirects: true, log: false, log_level: :debug, pretty_print_xml: false) country_code, vat_number = VatCheck::Utility.split(vat) begin response = client.call(:check_vat, message: {country_code: country_code, vat_number: vat_number}, message_tag: :checkVat) response.to_hash[:check_vat_response].reject { |key| key == :@xmlns } rescue Savon::SOAPFault => e if !!(e.message =~ /MS_UNAVAILABLE/) return {error:'Service unavailable'} else return {error:"Unknown error: #{e.message}"} end rescue Timeout::Error return {error:'Service timed out'} end end