class WsCee::Client

Constants

WS_CEE_PRODUCTION_URL
WS_CEE_TESTING_URL

Attributes

password[R]
proxy[R]
savon[R]
username[R]

Public Class Methods

new(options={}) click to toggle source
# File lib/ws_cee_client.rb, line 20
def initialize(options={})
  @username = options[:username]
  @password = options[:password]
  @proxy = options[:proxy].to_s

  savon_options = { wsdl: (options[:testing] ? WS_CEE_TESTING_URL : WS_CEE_PRODUCTION_URL) }
  savon_options.merge!({ proxy: @proxy }) if !@proxy.nil? && !@proxy.empty?

  @savon = Savon.client savon_options
rescue *SAVON_ERRORS => e
  raise WsCee::ConnectionError, e.message
end

Public Instance Methods

cause_detail(options) click to toggle source
# File lib/ws_cee_client.rb, line 41
def cause_detail(options)
  detail options[:cause_code]
end
find_by_company(company_details) click to toggle source
# File lib/ws_cee_client.rb, line 33
def find_by_company(company_details)
  company_indication company_details
end
find_by_person(person_details) click to toggle source
# File lib/ws_cee_client.rb, line 37
def find_by_person(person_details)
  person_indication person_details
end

Private Instance Methods

company_indication(company_details) click to toggle source
# File lib/ws_cee_client.rb, line 47
def company_indication(company_details)
  response = @savon.call :indication, message: company_query(company_details)
  parse_indication_response response.hash
rescue *SAVON_ERRORS => e
  raise WsCee::ConnectionError, e.message
end
company_query(company_details) click to toggle source
# File lib/ws_cee_client.rb, line 85
def company_query(company_details)
  { 'LoginData' => login_data, 'SearchQuery' => { 'CompanyQuery' => { 'RegistrationID' => company_details[:registration_number] } } }
end
detail(cause_code) click to toggle source
# File lib/ws_cee_client.rb, line 73
def detail(cause_code)
  response = @savon.call :detail, message: detail_query(cause_code)
  parse_detail_response response.hash
end
detail_query(cause_code) click to toggle source
# File lib/ws_cee_client.rb, line 94
def detail_query(cause_code)
  { 'LoginData' => login_data, 'CauseCode' => cause_code }
end
login_data() click to toggle source
# File lib/ws_cee_client.rb, line 98
def login_data
  { 'UserName' => @username, 'Password' => @password }
end
parse_detail_response(hash) click to toggle source
# File lib/ws_cee_client.rb, line 78
def parse_detail_response(hash)
  result = hash[:envelope][:body][:detail_result]
  return [] if result.nil?

  CauseDetail.new result[:cause]
end
parse_indication_response(hash) click to toggle source
# File lib/ws_cee_client.rb, line 61
def parse_indication_response(hash)
  result = hash[:envelope][:body][:indication_result]
  return [] if result.nil?

  cause_info = result[:cause_info]
  if cause_info.is_a? Array
    cause_info.collect { |cause| WsCee::CauseInfo.new cause }
  else
    [WsCee::CauseInfo.new(cause_info)]
  end
end
person_indication(person_details) click to toggle source
# File lib/ws_cee_client.rb, line 54
def person_indication(person_details)
  response = @savon.call :indication, message: person_query(person_details)
  parse_indication_response response.hash
rescue *SAVON_ERRORS => e
  raise WsCee::ConnectionError, e.message
end
person_query(person_details) click to toggle source
# File lib/ws_cee_client.rb, line 89
def person_query(person_details)
  { 'LoginData' => login_data, 'SearchQuery' => { 'PersonQuery' =>
                                                    { 'Name' => person_details[:name], 'DateOfBirth' => person_details[:date_of_birth] } } }
end