Base para el flujo de ramas por cliente. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from contextvars import ContextVar
|
|
|
|
# Variable de contexto única por cada Request de FastAPI
|
|
request_id_ctx: ContextVar[str] = ContextVar("request_id", default="-")
|
|
|
|
# Variable de contexto para el empleado conectado que originó la petición
|
|
current_user_ctx: ContextVar[dict] = ContextVar(
|
|
"current_user", default={"webUser": "-", "emp_id": "-", "full_name": "-"}
|
|
)
|
|
|
|
|
|
# ============================================================================
|
|
def get_request_id() -> str:
|
|
"""
|
|
Obtiene el ID de la petición del contexto actual.
|
|
"""
|
|
return request_id_ctx.get()
|
|
|
|
|
|
# ============================================================================
|
|
def set_request_id(request_id: str):
|
|
"""
|
|
Establece el ID de la petición en el contexto actual.
|
|
"""
|
|
request_id_ctx.set(request_id)
|
|
# ============================================================================
|
|
def get_current_user() -> dict:
|
|
"""
|
|
Obtiene el empleado conectado del contexto actual.
|
|
"""
|
|
return current_user_ctx.get()
|
|
|
|
|
|
# ============================================================================
|
|
def set_current_user(webUser: str, full_name: str = "", emp_id="-"):
|
|
"""
|
|
Establece el empleado conectado en el contexto actual.
|
|
"""
|
|
current_user_ctx.set({"webUser": webUser, "emp_id": emp_id, "full_name": full_name})
|
|
# ============================================================================ |