62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
from controllers.RESTController import APIRESTController
|
|
from controllers.SOAPController import VUCEMController
|
|
from typing import List, Dict, Any
|
|
|
|
|
|
class AcuseVUController(VUCEMController):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
def generate_acuse_template(self, **kwargs) -> str:
|
|
credencial = kwargs.get("credencial", {})
|
|
username = credencial.get("user")
|
|
password = credencial.get("password")
|
|
idEDocument = kwargs['edoc'].get("numero_edocument", "N/A")
|
|
soap_template = f'''
|
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:oxml="http://www.ventanillaunica.gob.mx/consulta/acuses/oxml">
|
|
<soapenv:Header>
|
|
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
|
|
<wsse:UsernameToken>
|
|
<wsse:Username>{username}</wsse:Username>
|
|
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">{password}</wsse:Password>
|
|
</wsse:UsernameToken>
|
|
</wsse:Security>
|
|
</soapenv:Header>
|
|
<soapenv:Body>
|
|
<oxml:consultaAcusesPeticion>
|
|
<idEdocument>{idEDocument}</idEdocument>
|
|
</oxml:consultaAcusesPeticion>
|
|
</soapenv:Body>
|
|
</soapenv:Envelope>
|
|
'''
|
|
return soap_template
|
|
|
|
class EDocumentController(APIRESTController):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
async def get_edocs(self, pedimento: str) -> List[Dict[str, Any]]:
|
|
"""
|
|
Método para obtener los documentos digitalizados de un pedimento.
|
|
|
|
Args:
|
|
pedimento: UUID del pedimento a consultar
|
|
"""
|
|
return await self._make_request_async('GET', f'customs/edocuments/?pedimento={pedimento}')
|
|
|
|
async def put_edocument(self, edocument_id: str, data: Dict[str, Any]) -> Dict[str, Any]:
|
|
"""
|
|
Método para actualizar un documento digitalizado en la API.
|
|
|
|
Args:
|
|
edocument_id: UUID del documento a actualizar
|
|
data: Diccionario con los datos a actualizar
|
|
"""
|
|
return await self._make_request_async('PUT', f'customs/edocuments/{edocument_id}/', data=data)
|
|
|
|
|
|
acuse_rest_controller = EDocumentController()
|
|
acuse_vu_controller = AcuseVUController()
|
|
|
|
|