Co-authored-by: eddgranados12 <eddgranados12@users.noreply.github.com>
Co-authored-by: MENDOZA BALLARDO GAEL RICARDO <gael-meb123@users.noreply.github.com> Co-authored-by: Azareth-Tr <Azareth-Tr@users.noreply.github.com> modificacion de las vistas principales para el usuario ciudadano, primer avance para el panel admin
This commit is contained in:
43
backend/app/api/users.py
Normal file
43
backend/app/api/users.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from pydantic import BaseModel, EmailStr
|
||||
from app.core.deps import get_current_user
|
||||
from app.core.supabase_client import supabase_admin
|
||||
from gotrue.types import User
|
||||
|
||||
router = APIRouter(prefix="/users", tags=["users"])
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
name: str | None = None
|
||||
email: EmailStr | None = None
|
||||
|
||||
@router.patch("/me", status_code=204)
|
||||
def update_user_profile(
|
||||
update_data: UserUpdate,
|
||||
current_user: User = Depends(get_current_user),
|
||||
):
|
||||
"""
|
||||
Actualiza el perfil del usuario autenticado (nombre, email).
|
||||
"""
|
||||
user_id = current_user.id
|
||||
update_payload = {}
|
||||
|
||||
if update_data.name:
|
||||
# El nombre no está en Supabase Auth, sino en nuestra tabla `users`
|
||||
try:
|
||||
supabase_admin.table("users").update({"name": update_data.name}).eq(
|
||||
"id", user_id
|
||||
).execute()
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"Error al actualizar el nombre: {e}")
|
||||
|
||||
if update_data.email:
|
||||
# El email sí está en Supabase Auth
|
||||
try:
|
||||
supabase_admin.auth.admin.update_user_by_id(
|
||||
user_id, {"email": update_data.email}
|
||||
)
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"Error al actualizar el email: {e}")
|
||||
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user