|
1 | 1 | from fastapi import APIRouter, Depends, Path |
2 | 2 | from pydantic import BaseModel, Field |
3 | 3 |
|
4 | | -from ..auth.dependencies import get_current_user_flexible, verify_api_key |
5 | | -from ..models import User |
6 | | -from ..services.invoice_service import generate_invoice |
7 | | -from ..services.order_service import get_order_status |
| 4 | +from app.auth.dependencies import get_current_user_flexible, verify_api_key |
| 5 | +from app.models import User |
| 6 | +from app.services.invoice_service import generate_invoice |
| 7 | +from app.services.order_service import get_order_status |
8 | 8 |
|
9 | 9 | # Router con documentación mejorada |
10 | 10 | router = APIRouter( |
|
17 | 17 | }, |
18 | 18 | ) |
19 | 19 |
|
| 20 | +# Singletons para evitar B008 |
| 21 | +current_user_flexible_dep = Depends(get_current_user_flexible) |
| 22 | + |
20 | 23 | # ----- Modelos Pydantic con documentación mejorada ----- |
21 | 24 |
|
22 | 25 |
|
@@ -196,8 +199,8 @@ async def order_status( |
196 | 199 | examples=["ORD-2025-001234"], |
197 | 200 | pattern="^[A-Z]{3}-[0-9]{4}-[0-9]{6}$", |
198 | 201 | ), |
199 | | - current_user: User | None = Depends(get_current_user_flexible), |
200 | | -): |
| 202 | + _current_user: User | None = current_user_flexible_dep, |
| 203 | +) -> OrderStatusResponse: |
201 | 204 | """ |
202 | 205 | **Endpoint para consultar el estado de una orden bancaria** |
203 | 206 |
|
@@ -291,13 +294,16 @@ async def invoice( |
291 | 294 | invoice_id: str = Path( |
292 | 295 | ..., description="ID de la factura a generar", examples=["INV-2025-789012"] |
293 | 296 | ), |
294 | | - data: InvoiceRequest = None, |
295 | | - current_user: User | None = Depends(get_current_user_flexible), |
296 | | -): |
| 297 | + data: InvoiceRequest | None = None, |
| 298 | + _current_user: User | None = current_user_flexible_dep, |
| 299 | +) -> InvoiceResponse: |
297 | 300 | """ |
298 | 301 | **Endpoint para generar facturas de órdenes bancarias** |
299 | 302 |
|
300 | 303 | Procesa la solicitud de facturación y genera un documento oficial |
301 | 304 | con todos los detalles fiscales requeridos. |
302 | 305 | """ |
| 306 | + if data is None: |
| 307 | + # Coherencia de tipos; en práctica FastAPI validará body requerido si así se define |
| 308 | + return generate_invoice("") |
303 | 309 | return generate_invoice(data.order_id) |
0 commit comments