Se agregaron los moduloes de api_v2
This commit is contained in:
41
api/api_v2/modules/edocs/routers.py
Normal file
41
api/api_v2/modules/edocs/routers.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from fastapi import APIRouter, HTTPException, Depends
|
||||
from typing import Dict, Any, Optional
|
||||
from .schemas import EdocumentsSchema, EdocumentsMasivoSchema
|
||||
from .tasks import process_edoc_download_request, process_edocs_masivo_download_request
|
||||
from api.api_v2.modules.authentication.services import get_current_user
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# --- Nuevas rutas para la descarga de edocs ---
|
||||
|
||||
@router.post("/services/download/edoc/", response_model=Dict[str, Any])
|
||||
async def download_edoc(edoc_request: EdocumentsSchema):
|
||||
"""
|
||||
Endpoint para iniciar la descarga de un documento electrónico (edoc).
|
||||
"""
|
||||
edoc_dict = edoc_request.model_dump()
|
||||
# Ejecuta la tarea de Celery de forma asíncrona
|
||||
task = process_edoc_download_request.delay(edoc_dict)
|
||||
# Devuelve el ID de la tarea
|
||||
return {"task_id": task.id, "status": "submitted"}
|
||||
|
||||
@router.post("/services/download/all/edocs/", response_model=Dict[str, Any])
|
||||
async def download_edocs_masivo(edoc_request: EdocumentsMasivoSchema):
|
||||
"""
|
||||
Endpoint para iniciar la descarga masiva de documentos electrónicos (edocs).
|
||||
"""
|
||||
task_ids = []
|
||||
edoc_request_dict = edoc_request.model_dump()
|
||||
# Para cada edoc en la lista, dispara una tarea Celery
|
||||
for edoc in edoc_request_dict.get('edocs', []):
|
||||
# Crea un nuevo diccionario de datos para cada tarea
|
||||
edoc_dict = {
|
||||
"pedimento": edoc_request_dict.get('pedimento'),
|
||||
"credencial": edoc_request_dict.get('credencial'),
|
||||
"edoc": edoc.get('edoc')
|
||||
}
|
||||
task = process_edoc_download_request.delay(edoc_dict)
|
||||
task_ids.append(task.id)
|
||||
|
||||
return {"task_ids": task_ids, "status": "submitted", "total": len(task_ids)}
|
||||
Reference in New Issue
Block a user