Se agregaron los moduloes de api_v2
This commit is contained in:
43
api/api_v2/modules/partidas/routers.py
Normal file
43
api/api_v2/modules/partidas/routers.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from fastapi import APIRouter, HTTPException, Depends
|
||||
from fastapi.responses import JSONResponse
|
||||
from typing import Dict, Any, List, Optional
|
||||
|
||||
|
||||
|
||||
from api.api_v2.modules.authentication.services import get_current_user
|
||||
from .schemas import PartidaRequestSchema, PartidaListSchema
|
||||
from .tasks import process_partida_request
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.post("/services/partida/", response_model=Dict[str, Any])
|
||||
async def obtener_partida(partida_request: PartidaRequestSchema):
|
||||
"""
|
||||
Endpoint para obtener la información de una partida específica.
|
||||
"""
|
||||
|
||||
acuse_dict = partida_request.model_dump()
|
||||
# Ejecuta la tarea de Celery de forma asíncrona
|
||||
task = process_partida_request.delay(acuse_dict)
|
||||
# Puedes devolver el ID de la tarea para consultar el estado después
|
||||
return {"task_id": task.id, "status": "submitted"}
|
||||
|
||||
@router.post("/services/all/partidas/", response_model=Dict[str, Any])
|
||||
async def obtener_partidas(partidas_request: PartidaListSchema):
|
||||
"""
|
||||
Endpoint para iniciar la descarga masiva de partidas.
|
||||
"""
|
||||
task_ids = []
|
||||
partida_request_dict = partidas_request.model_dump()
|
||||
# Para cada partida en la lista, dispara una tarea Celery
|
||||
for partida in partida_request_dict.get('partidas', []):
|
||||
# Crea un nuevo diccionario de datos para cada tarea
|
||||
partida_dict = {
|
||||
"partida": partida,
|
||||
"pedimento": partida_request_dict.get('pedimento'),
|
||||
"credencial": partida_request_dict.get('credencial')
|
||||
}
|
||||
task = process_partida_request.delay(partida_dict)
|
||||
task_ids.append(task.id)
|
||||
|
||||
return {"task_ids": task_ids, "status": "submitted", "total": len(task_ids)}
|
||||
Reference in New Issue
Block a user