Import ClientFlow production v4928.1.5.132.4
This commit is contained in:
@@ -5,7 +5,7 @@ HTMX table partial so filters and operator actions can refresh the outbox
|
||||
without replacing the full page.
|
||||
"""
|
||||
from fastapi import APIRouter, Request
|
||||
from fastapi.responses import HTMLResponse
|
||||
from fastapi.responses import HTMLResponse, PlainTextResponse
|
||||
import app.admin_dashboard as legacy
|
||||
from app.admin_dashboard import * # noqa: F401,F403
|
||||
from app.admin_ui.guidance import outbox_operator_message
|
||||
@@ -142,6 +142,8 @@ async def outbox_page(
|
||||
|
||||
@router.get("/outbox/{outbox_id}", response_class=HTMLResponse)
|
||||
async def outbox_detail(outbox_id: str):
|
||||
if not is_uuid_text(outbox_id):
|
||||
return PlainTextResponse("Identificador de outbox inválido.", status_code=422)
|
||||
item = get_outbox_item(outbox_id)
|
||||
|
||||
if not item:
|
||||
@@ -194,6 +196,8 @@ async def outbox_detail(outbox_id: str):
|
||||
|
||||
@router.post("/outbox/{outbox_id}/retry")
|
||||
async def outbox_retry(outbox_id: str, request: Request):
|
||||
if not is_uuid_text(outbox_id):
|
||||
return PlainTextResponse("Identificador de outbox inválido.", status_code=422)
|
||||
form = await request.form()
|
||||
opportunity_id = str(form.get("opportunity_id") or "").strip()
|
||||
set_outbox_status(outbox_id=outbox_id, status="pending")
|
||||
@@ -212,6 +216,8 @@ def _outbox_htmx_or_redirect(request: Request, status: str = "all", target_syste
|
||||
|
||||
@router.post("/outbox/{outbox_id}/pending")
|
||||
async def outbox_pending(outbox_id: str, request: Request):
|
||||
if not is_uuid_text(outbox_id):
|
||||
return PlainTextResponse("Identificador de outbox inválido.", status_code=422)
|
||||
set_outbox_status(outbox_id=outbox_id, status="pending")
|
||||
from app.operator_audit_service import record_operator_action_best_effort
|
||||
record_operator_action_best_effort(action="outbox_reprocess_requested", entity_type="outbox", entity_id=outbox_id, actor="operator", after={"status": "pending"})
|
||||
@@ -220,6 +226,8 @@ async def outbox_pending(outbox_id: str, request: Request):
|
||||
|
||||
@router.post("/outbox/{outbox_id}/sent")
|
||||
async def outbox_sent(outbox_id: str, request: Request):
|
||||
if not is_uuid_text(outbox_id):
|
||||
return PlainTextResponse("Identificador de outbox inválido.", status_code=422)
|
||||
set_outbox_status(outbox_id=outbox_id, status="sent")
|
||||
from app.operator_audit_service import record_operator_action_best_effort
|
||||
record_operator_action_best_effort(action="outbox_marked_sent", entity_type="outbox", entity_id=outbox_id, actor="operator", after={"status": "sent"})
|
||||
@@ -228,6 +236,8 @@ async def outbox_sent(outbox_id: str, request: Request):
|
||||
|
||||
@router.post("/outbox/{outbox_id}/failed")
|
||||
async def outbox_failed(outbox_id: str, request: Request):
|
||||
if not is_uuid_text(outbox_id):
|
||||
return PlainTextResponse("Identificador de outbox inválido.", status_code=422)
|
||||
set_outbox_status(outbox_id=outbox_id, status="failed", error="Marcado manualmente como failed.")
|
||||
from app.operator_audit_service import record_operator_action_best_effort
|
||||
record_operator_action_best_effort(action="outbox_marked_failed", entity_type="outbox", entity_id=outbox_id, actor="operator", after={"status": "failed"})
|
||||
@@ -236,6 +246,8 @@ async def outbox_failed(outbox_id: str, request: Request):
|
||||
|
||||
@router.post("/outbox/{outbox_id}/ignored")
|
||||
async def outbox_ignored(outbox_id: str, request: Request):
|
||||
if not is_uuid_text(outbox_id):
|
||||
return PlainTextResponse("Identificador de outbox inválido.", status_code=422)
|
||||
set_outbox_status(outbox_id=outbox_id, status="ignored", error="Ignorado manualmente pelo operador.")
|
||||
from app.operator_audit_service import record_operator_action_best_effort
|
||||
record_operator_action_best_effort(action="outbox_ignored", entity_type="outbox", entity_id=outbox_id, actor="operator", after={"status": "ignored"})
|
||||
|
||||
Reference in New Issue
Block a user