Files

69 lines
2.4 KiB
Python

from fastapi import APIRouter, HTTPException
from .schemas import CoveListSchema, CoveRequestSchema
from typing import List, Dict, Any
from uuid import UUID
import logging
from .tasks import process_cove_request, process_acuse_cove_request
from ..tasks.services import register_task
logger = logging.getLogger(__name__)
router = APIRouter()
# Aquí puedes definir tus endpoints relacionados con COVES usando el esquema CoveBaseSchema
@router.post("/services/cove/", response_model=Dict[str, Any])
async def get_cove(cove: CoveRequestSchema):
"""Endpoint para obtener un COVE específico."""
cove_dict = cove.model_dump()
task = process_cove_request.delay(cove_dict)
return {"task_id": task.id, "status": "submitted"}
@router.post("/services/all/coves", response_model=Dict[str, Any])
async def get_coves(coves_request: CoveListSchema):
"""Endpoint para obtener múltiples COVEs asociados a un pedimento."""
task_ids = []
coves_dict = coves_request.model_dump()
pedimento = coves_dict.get('pedimento', {})
for cove in coves_dict.get('coves', []):
cove_dict = {
"cove": cove,
"pedimento": pedimento,
"credencial": coves_dict.get('credencial')
}
task = process_cove_request.delay(cove_dict)
task_ids.append(task.id)
return {"task_ids": task_ids, "status": "submitted", "total": len(task_ids)}
@router.post("/services/acuse/cove/", response_model=Dict[str, Any])
async def get_acuse_cove(cove: CoveRequestSchema):
"""Endpoint para obtener el acuse de un COVE específico."""
cove_dict = cove.model_dump()
task = process_acuse_cove_request.delay(cove_dict)
return {"task_id": task.id, "status": "submitted"}
@router.post("/services/all/acuse/cove/", response_model=Dict[str, Any])
async def get_acuses_cove(coves_request: CoveListSchema):
"""Endpoint para obtener los acuses de múltiples COVEs asociados a un pedimento."""
task_ids = []
coves_dict = coves_request.model_dump()
pedimento = coves_dict.get('pedimento', {})
for cove in coves_dict.get('coves', []):
acuse_dict = {
"cove": cove,
"pedimento": pedimento,
"credencial": coves_dict.get('credencial')
}
task = process_acuse_cove_request.delay(acuse_dict)
task_ids.append(task.id)
return {"task_ids": task_ids, "status": "submitted", "total": len(task_ids)}