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''' {username} {password} {idEDocument} ''' 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()