class Valvat::Lookup::VIES
Constants
- BODY
- BODY_TEMPLATE
- ENDPOINT_URI
- FAULTS
- HEADERS
Private Instance Methods
build_fault(hash)
click to toggle source
# File lib/valvat/lookup/vies.rb, line 91 def build_fault(hash) fault = hash[:faultstring] return hash.merge({ valid: false }) if fault == 'INVALID_INPUT' hash.merge({ error: (FAULTS[fault] || UnknownLookupError).new(fault, self.class) }) end
build_request(uri)
click to toggle source
# File lib/valvat/lookup/vies.rb, line 44 def build_request(uri) request = Net::HTTP::Post.new(uri.request_uri, HEADERS) request.body = BODY_TEMPLATE.result(binding) request end
convert_key(key)
click to toggle source
# File lib/valvat/lookup/vies.rb, line 58 def convert_key(key) key.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .sub(/\Atrader_/, '') .downcase.to_sym end
convert_value(value)
click to toggle source
# File lib/valvat/lookup/vies.rb, line 66 def convert_value(value) value == '---' ? nil : value end
convert_values(hash)
click to toggle source
# File lib/valvat/lookup/vies.rb, line 70 def convert_values(hash) return build_fault(hash) if hash[:faultstring] hash[:valid] = hash[:valid] == 'true' || (hash[:valid] == 'false' ? false : nil) if hash.key?(:valid) hash[:request_date] = Date.parse(hash[:request_date]) if hash.key?(:request_date) hash end
endpoint_uri()
click to toggle source
# File lib/valvat/lookup/vies.rb, line 40 def endpoint_uri ENDPOINT_URI end
parse(body)
click to toggle source
# File lib/valvat/lookup/vies.rb, line 50 def parse(body) doc = REXML::Document.new(body) elements = doc.get_elements('/env:Envelope/env:Body').first.first convert_values(elements.each_with_object({}) do |el, hash| hash[convert_key(el.name)] = convert_value(el.text) end) end