class Biro::Ph3a::Request

Public Instance Methods

development_url() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 6
def development_url
  'https://ws.databusca.com.br/DataHistory.svc?wsdl'
end
find(document) click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 18
def find(document)
  begin
    @retries ||= 0
    @token = nil

    params = {}
    get_parameters params, document
    response = soap.call(:get_person_data, message: params)
    Response.new(response)
  rescue => e
    Biro.log(:warn, "Unable to process Ph3a request")

    retry if (@retries += 1) < 3 && e.message.include?("User not authenticated")
    raise AuthenticationError.new("Error at PH3A request: #{e.message}") if e.message.include?("User not authenticated")
    raise StandardError.new("Error at PH3A request: #{e.message}")
  end
end
production_url() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 10
def production_url
  'https://ws.databusca.com.br/DataHistory.svc?wsdl'
end
required_params() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 14
def required_params
  [:username, :password, :domain]
end

Private Instance Methods

get_current() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 42
def get_current
  login_params = {}
  get_login_parameters login_params

  response = soap.call(:get_current, message: login_params)

  CurrentBuilder.new(response).token
end
get_login_parameters(login_params) click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 64
def get_login_parameters login_params
  login_params['tns:user'] = {}
  login_params['tns:user']['ph3a:DomainId'] = @domain
  login_params['tns:user']['ph3a:Password'] = @password
  login_params['tns:user']['ph3a:UserName'] = @username
end
get_parameters(params, document) click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 71
def get_parameters params, document
  params['tns:token'] = token
  params['tns:document'] = document
end
login() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 51
def login
  login_params = {}
  get_login_parameters login_params

  begin
    response = soap.call(:login, message: login_params)
  rescue
    raise AuthenticationError.new('Authentication Error')
  end

  LoginBuilder.new(response).token
end
savon_options() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 76
def savon_options
  { namespaces: {
      "xmlns:soapenv"=>"http://schemas.xmlsoap.org/soap/envelope/",
      "xmlns:tem"=>"http://tempuri.org/",
      "xmlns:ph3a"=>"http://schemas.datacontract.org/2004/07/PH3A.Viper.Web.PortalService.Models"
  }}
end
token() click to toggle source
# File lib/biro/gateways/ph3a/request.rb, line 38
def token
  @token ||= (get_current || login)
end