# controllers.py from controllers.RESTController import APIRESTController from controllers.SOAPController import VUCEMController from typing import List, Dict, Any class EdocVuController(VUCEMController): """ Controlador para interactuar con el servicio SOAP de la Ventanilla Única para la descarga de documentos electrónicos (edocs). """ def __init__(self): super().__init__() def generate_edocument_template(self, username: str, password: str, idEDocument: str) -> str: """ Genera el template SOAP para consultar un EDocument específico Args: username: Usuario de VUCEM password: Contraseña de VUCEM idEDocument: ID del EDocument Returns: str: Template SOAP XML completo """ soap_template = f''' {username} {password} {idEDocument} 1 ''' return soap_template class EdocRESTController(APIRESTController): """ Controlador para interactuar con la API REST interna para guardar documentos electrónicos. """ def __init__(self): super().__init__() 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) # Instancias de los controladores que serán importadas en services.py edocs_vu_controller = EdocVuController() edocs_rest_controller = EdocRESTController()