fixed the RAg in test pipeline issue

This commit is contained in:
belviskhoremk
2026-04-26 18:51:48 +00:00
parent 205d9d7901
commit 97a501097d
14 changed files with 249 additions and 57 deletions

View File

@@ -24,6 +24,7 @@ class ProfileUpdate(BaseModel):
company_name: Optional[str] = None
current_password: Optional[str] = None
new_password: Optional[str] = Field(default=None, min_length=8)
language: Optional[str] = None
@router.post("/signup", response_model=TokenResponse)
@@ -116,12 +117,14 @@ async def login(data: UserLogin):
)
plan = sub.data[0]["plan"] if sub.data else "free"
# Get is_admin flag
# Get is_admin and language from profile
try:
profile = supabase.table("user_profiles").select("is_admin").eq("user_id", user.id).execute()
profile = supabase.table("user_profiles").select("is_admin, language").eq("user_id", user.id).execute()
is_admin = profile.data[0].get("is_admin", False) if profile.data else False
language = profile.data[0].get("language", "fr") if profile.data else "fr"
except Exception:
is_admin = False
language = "fr"
return TokenResponse(
access_token=auth_resp.session.access_token,
@@ -131,6 +134,7 @@ async def login(data: UserLogin):
company_name=company_name,
plan=plan,
is_admin=is_admin,
language=language,
),
)
except HTTPException:
@@ -191,12 +195,22 @@ async def update_profile(data: ProfileUpdate, user=Depends(get_current_user)):
raise HTTPException(status_code=400, detail="Current password is incorrect")
supabase.auth.admin.update_user_by_id(user.id, {"password": data.new_password})
if data.language:
supabase.table("user_profiles").update({"language": data.language}).eq("user_id", user.id).execute()
company = supabase.table("companies").select("name").eq("owner_id", user.id).execute()
company_name = company.data[0]["name"] if company.data else ""
sub = supabase.table("subscriptions").select("plan").eq("user_id", user.id).eq("status", "active").execute()
plan = sub.data[0]["plan"] if sub.data else "free"
try:
profile = supabase.table("user_profiles").select("is_admin, language").eq("user_id", user.id).execute()
is_admin = profile.data[0].get("is_admin", False) if profile.data else False
language = profile.data[0].get("language", "fr") if profile.data else "fr"
except Exception:
is_admin = False
language = data.language or "fr"
return UserResponse(id=user.id, email=user.email, company_name=company_name, plan=plan)
return UserResponse(id=user.id, email=user.email, company_name=company_name, plan=plan, is_admin=is_admin, language=language)
@router.delete("/account")
@@ -246,10 +260,12 @@ async def get_me(user=Depends(get_current_user)):
plan = sub.data[0]["plan"] if sub.data else "free"
try:
profile = supabase.table("user_profiles").select("is_admin").eq("user_id", user.id).execute()
profile = supabase.table("user_profiles").select("is_admin, language").eq("user_id", user.id).execute()
is_admin = profile.data[0].get("is_admin", False) if profile.data else False
language = profile.data[0].get("language", "fr") if profile.data else "fr"
except Exception:
is_admin = False
language = "fr"
return UserResponse(
id=user.id,
@@ -257,4 +273,5 @@ async def get_me(user=Depends(get_current_user)):
company_name=company_name,
plan=plan,
is_admin=is_admin,
language=language,
)