class Biro::Spc::Request

Constants

SCORE_12_MONTHS
SCORE_3_MONTHS

Public Instance Methods

development_url() click to toggle source
# File lib/biro/gateways/spc/request.rb, line 9
def development_url
  'https://treina.spc.org.br/spc/remoting/ws/consulta/consultaWebService?wsdl'
end
display_products() click to toggle source
# File lib/biro/gateways/spc/request.rb, line 37
def display_products
  response = soap.call(:listar_produtos, xml: '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header /><soapenv:Body /></soapenv:Envelope>')
  response.body
end
find(document, options = {}) click to toggle source
# File lib/biro/gateways/spc/request.rb, line 21
def find(document, options = {})
  begin
    params = {}
    add_basic_info(params, document, options[:kind] || 'F', options[:product_code])
    add_score_info(params) if options[:include_score]

    response = soap.call(:consultar, message: params)
    Response.new(response)
  rescue => e
    Biro.log(:warn, "Unable to process SPC request")
    raise AuthenticationError.new("Error at SPC request: #{e.message}") if e.message.include?("CS_AUT")
    raise DocumentNotFoundError.new("Error at SPC request: #{e.message}") if e.message.include?("CPF inválido") || e.message.include?("(7)")
    raise StandardError.new("Error at SPC request: #{e.message}")
  end
end
production_url() click to toggle source
# File lib/biro/gateways/spc/request.rb, line 13
def production_url
  'https://servicos.spc.org.br/spc/remoting/ws/consulta/consultaWebService?wsdl'
end
required_params() click to toggle source
# File lib/biro/gateways/spc/request.rb, line 17
def required_params
  [:username, :password]
end

Private Instance Methods

add_basic_info(params, document, kind, product_code) click to toggle source
# File lib/biro/gateways/spc/request.rb, line 48
def add_basic_info(params, document, kind, product_code)
  params['codigo-produto'] = product_code
  params['tipo-consumidor'] = kind
  params['documento-consumidor'] = document
end
add_score_info(request) click to toggle source
# File lib/biro/gateways/spc/request.rb, line 54
def add_score_info(request)
  request['codigo-insumo-opcional'] = [SCORE_3_MONTHS, SCORE_12_MONTHS]
end
savon_options() click to toggle source
# File lib/biro/gateways/spc/request.rb, line 44
def savon_options
  { basic_auth: [@username, @password] }
end