Module: NubeFact

Extended by:
NubeFact
Included in:
NubeFact
Defined in:
lib/nube_fact.rb,
lib/nube_fact.rb,
lib/nube_fact/version.rb,
lib/nube_fact/exceptions.rb

Overview

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

Defined Under Namespace

Modules: Sunat, Utils, Validator Classes: CreditNote, Document, ErrorResponse, InvalidField, Invoice, NotConfigured, ValidationError

Constant Summary collapse

API_BASE =
'https://www.nubefact.com/api/v1'
API_BASE_DEMO =
'https://demo.nubefact.com/api/v1'
READ_TIMEOUT =
120
LIST_TIMEOUT =
360
DATE_FORMAT =
"%d-%m-%Y"
VERSION =
"0.0.12"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#api_tokenObject

Returns the value of attribute api_token.



35
36
37
# File 'lib/nube_fact.rb', line 35

def api_token
  @api_token
end

#url_tokenObject

Returns the value of attribute url_token.



34
35
36
# File 'lib/nube_fact.rb', line 34

def url_token
  @url_token
end

Instance Method Details

#request(data) ⇒ Object

Raises:



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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

#urlObject



64
65
66
67
# 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!Object



69
70
71
# File 'lib/nube_fact.rb', line 69

def use_demo!
  @use_demo = true
end