module NubeFact

docs.google.com/document/d/1QWWSILBbjd4MDkJl7vCkL2RZvkPh0IC7Wa67BvoYIhA/edit

CÓDIGO - DESCRIPCIÓN 10 - No se pudo autenticar, token incorrecto o eliminado 11 - La ruta o URL que estás usando no es correcta o no existe.

Ingresa a tu cuenta en www.nubefact.com en la opción Api-Integración para verificar este dato

12 - Solicitud incorrecta, la cabecera (Header) no contiene un Content-Type correcto 20 - El archivo enviado no cumple con el formato establecido 21 - No se pudo completar la operación, se acompaña el problema con un mensaje 22 - Documento enviado fuera del plazo permitido 23 - Este documento ya existe en NubeFacT 24 - El documento indicado no existe o no fue enviado a NubeFacT 40 - Error interno desconocido 50 - Su cuenta ha sido suspendida 51 - Su cuenta ha sido suspendida por falta de pago

Constants

API_BASE
API_BASE_DEMO
DATE_FORMAT
LIST_TIMEOUT
READ_TIMEOUT
VERSION

Attributes

api_token[RW]
url_token[RW]

Public Instance Methods

request(data) click to toggle source
# File lib/nube_fact.rb, line 37
def request(data)
  raise NotConfigured unless url_token && api_token

  http = Net::HTTP.new(url.host, url.port)
  http.read_timeout = READ_TIMEOUT
  http.use_ssl = true
  # http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  request = Net::HTTP::Post.new(url)
  request.body = data.to_json

  request["Authorization"] = 'Token token="%s"' % api_token
  request["Content-Type"] = 'application/json'
  request["cache-control"] = 'no-cache'

  response = http.request request

  # ToDO evaluate response code (not authorized, 500, etc)

  result = JSON.parse(response.read_body)
  if result['errors']
    raise ErrorResponse.new "#{result['codigo']}: #{result['errors']}"
  end

  result
end
url() click to toggle source
# File lib/nube_fact.rb, line 64
def url
  base_url = @use_demo ? API_BASE_DEMO : API_BASE
  URI("#{base_url}/#{url_token}")
end
use_demo!() click to toggle source
# File lib/nube_fact.rb, line 69
def use_demo!
  @use_demo = true
end