Add type download

This commit is contained in:
el Mau 2023-01-27 15:38:05 -06:00
parent e79967aef3
commit 58eb4d6727
4 changed files with 23 additions and 18 deletions

View File

@ -6,3 +6,6 @@ RUTA_FIEL = ''
# ~ Nombre predeterminado de los archivos FIEL # ~ Nombre predeterminado de los archivos FIEL
NOMBRE_FIEL = 'fiel' NOMBRE_FIEL = 'fiel'
TIMEOUT = 10

View File

@ -14,11 +14,11 @@ class JSONTranslator():
class AppApi(object): class AppApi(object):
def on_get(self, req, resp, rfc, cfdi): def on_get(self, req, resp, rfc, tipo, cfdi):
resp.context['result'] = get_uuid(rfc, cfdi) resp.context['result'] = get_uuid(rfc, tipo, cfdi)
resp.status = falcon.HTTP_200 resp.status = falcon.HTTP_200
app = falcon.App(middleware=[JSONTranslator()]) app = falcon.App(middleware=[JSONTranslator()])
api = AppApi() api = AppApi()
app.add_route('/api/{rfc}/{cfdi}', api) app.add_route('/api/{rfc}/{tipo}/{cfdi}', api)

View File

@ -22,6 +22,8 @@ import requests
from requests import Session, exceptions, adapters from requests import Session, exceptions, adapters
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL' requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL'
from conf import TIMEOUT
LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s' LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s'
LOG_DATE = '%d/%m/%Y %H:%M:%S' LOG_DATE = '%d/%m/%Y %H:%M:%S'
@ -32,7 +34,6 @@ logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=LOG_DATE)
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
TIMEOUT = 10
VERIFY_CERT = True VERIFY_CERT = True
@ -451,6 +452,7 @@ class PortalSAT(object):
if not result: if not result:
msg = 'Error al identificarse en el SAT' msg = 'Error al identificarse en el SAT'
self.error = msg
log.error(msg) log.error(msg)
return False return False
data = self._read_form(result) data = self._read_form(result)
@ -529,20 +531,16 @@ class PortalSAT(object):
return xml return xml
def get_uuid(self, cfdi_uuid): def get_uuid(self, tipo, cfdi_uuid):
data = {'error': '', 'xml': ''} data = {'error': '', 'xml': ''}
msg = f'Buscando UUID: {cfdi_uuid}' msg = f'Buscando UUID: {cfdi_uuid}'
log.debug(msg) log.debug(msg)
# ~ Recibidos if tipo == 'r':
filters = self._get_filters(cfdi_uuid, False) filters = self._get_filters(cfdi_uuid, False)
data['xml'] = self._search_by_uuid(filters) data['xml'] = self._search_by_uuid(filters)
elif tipo == 'e':
if data['xml']: filters = self._get_filters(cfdi_uuid, True)
return data data['xml'] = self._search_by_uuid(filters)
# ~ Emitidos
filters = self._get_filters(cfdi_uuid, True)
data['xml'] = self._search_by_uuid(filters)
return data return data

View File

@ -49,13 +49,17 @@ def validate_fiel(rfc):
return cert, error return cert, error
def get_uuid(rfc, cfdi_uuid): def get_uuid(rfc, tipo, cfdi_uuid):
data = {'error': '', 'xml': ''} data = {'error': '', 'xml': ''}
if not validate_uuid(cfdi_uuid): if not validate_uuid(cfdi_uuid):
data['error'] = 'UUID inválido' data['error'] = 'UUID inválido'
return data return data
if not tipo.lower() in ('e', 'r'):
data['error'] = 'Tipo inválido, debe ser e o r'
return data
cert, error = validate_fiel(rfc) cert, error = validate_fiel(rfc)
if not cert: if not cert:
data['error'] = error data['error'] = error
@ -68,10 +72,10 @@ def get_uuid(rfc, cfdi_uuid):
if not sat.is_connect: if not sat.is_connect:
sat.logout() sat.logout()
data['error'] = sat.error data['error'] = sat.error
log.eror(sat.error) log.error(sat.error)
return data return data
data = sat.get_uuid(cfdi_uuid) data = sat.get_uuid(tipo, cfdi_uuid)
sat.logout() sat.logout()
except Exception as e: except Exception as e:
log.error(e) log.error(e)