class Biro::Bvs::Request
Public Instance Methods
development_url()
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 10 def development_url "https://bvsntt.bvsnet.com.br/cgi-bin/db2www/netpo028.mbr/string?consulta=" end
find(document, options = {})
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 18 def find(document, options = {}) bvs_results = {} bvs_results[:score] = score(document) if options.keys.include?(:score) bvs_results[:debits] = debits(document) if options.keys.include?(:debits) get_response(bvs_results) end
production_url()
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 6 def production_url "https://www.bvsnet.com.br/cgi-bin/db2www/netpo028.mbr/string?consulta=" end
required_params()
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 14 def required_params [:username, :password] end
Private Instance Methods
auth_error?(response)
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 43 def auth_error?(response) response.score_error_message == "DOCUMENTO INVALIDO" || response.debits_error_message == "DOCUMENTO INVALIDO" end
debits(document)
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 59 def debits(document) params = DebitsRequestBuilder.new(document, @username, @password).build begin response = RestClient::Request.execute(url: url + URI.encode(params), method: :get, verify_ssl: false) return response rescue => e Biro.log(:warn, "Unable to process BVS debits request") raise StandardError.new("Error at BVS debits request: #{e.message}") end end
document_error?(response)
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 39 def document_error?(response) response.score_error_message == "SENHA INVALIDA" || response.debits_error_message == "SENHA INVALIDA" end
get_response(result)
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 29 def get_response(result) response = Response.new result raise DocumentNotFoundError.new("BVS Error: Document not found - SCORE: #{response.score_error_message} - DEBITS: #{response.debits_error_message}" ) if auth_error?(response) raise AuthenticationError.new("BVS Error: Invalid user or password - SCORE: #{response.score_error_message} - DEBITS: #{response.debits_error_message}" ) if document_error?(response) raise StandardError.new("Error at BVS Request: SCORE: #{response.score_error_message} - DEBITS: #{response.debits_error_message}" ) unless response.score_error_message.blank? && response.debits_error_message.blank? response end
score(document)
click to toggle source
# File lib/biro/gateways/bvs/request.rb, line 47 def score(document) params = ScoreRequestBuilder.new(document, @username, @password).build begin response = RestClient::Request.execute(url: url + URI.encode(params), method: :get, verify_ssl: false) return response rescue => e Biro.log(:warn, "Unable to process BVS score request") raise StandardError.new("Error at BVS score request: #{e.message}") end end