class Biro::Bacen::Request

Public Instance Methods

development_url() click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 6
def development_url
  'https://scr.bcb.gov.br/wsscr/ControleCliente.xml'
end
find(document, date) click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 18
def find(document, date)
  begin
    params = {}
    get_parameters(params, document, date)
    result = soap.call(:get_resumo_do_cliente, message: params)
  rescue => e
    Biro.log(:warn, "Unable to process Bacen request")
    raise StandardError.new("Error at Bacen request: #{e.message}")
  end

  get_response result
end
production_url() click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 10
def production_url
  'https://scr.bcb.gov.br/wsscr/ControleCliente.xml'
end
required_params() click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 14
def required_params
  [:username, :password]
end

Private Instance Methods

get_parameters(params, document, date) click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 46
def get_parameters(params, document, date)
  params['codCliente'] = document
  params['tpCliente'] = 1
  params['dataBase'] = date
  params['autorizacao'] = 'S'
end
get_response(result) click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 33
def get_response(result)
  response = Response.new(result)
  raise DocumentNotFoundError.new("Document not found: Code => #{response.result_validation[:codigo]} and Message => #{response.result_validation[:mensagem]}") if ['55'].include?(response.result_validation[:codigo])
  raise AuthenticationError.new("Authentication Error: Code => #{response.result_validation[:codigo]} and Message => #{response.result_validation[:mensagem]}") if ['62','63','53'].include?(response.result_validation[:codigo])
  raise StandardError.new("Error at Bacen Request: Code => #{response.result_validation[:codigo]} and Message => #{response.result_validation[:mensagem]}") unless response.result_validation.blank? || ['50'].include?(response.result_validation[:codigo])

  response
end
savon_options() click to toggle source
# File lib/biro/gateways/bacen/request.rb, line 42
def savon_options
  { basic_auth: [@username, @password], headers: { 'SOAPAction' => ''} }
end