|
1 | 1 | from fastapi import APIRouter, Depends, HTTPException |
2 | | -from transformerlab.shared.models.user_model import User, Team, UserTeam, get_async_session |
| 2 | +from transformerlab.shared.models.user_model import User, Team, UserTeam, get_async_session, create_default_team |
3 | 3 | from transformerlab.models.users import ( |
4 | 4 | fastapi_users, |
5 | 5 | auth_backend, |
@@ -92,7 +92,24 @@ async def refresh_access_token( |
92 | 92 |
|
93 | 93 | @router.get("/users/me/teams") |
94 | 94 | async def get_user_teams(user: User = Depends(current_active_user), session: AsyncSession = Depends(get_async_session)): |
95 | | - stmt = select(Team).join(UserTeam).where(UserTeam.user_id == str(user.id)) |
| 95 | + # Check if user has any team associations |
| 96 | + stmt = select(UserTeam).where(UserTeam.user_id == str(user.id)) |
| 97 | + result = await session.execute(stmt) |
| 98 | + user_teams = result.scalars().all() |
| 99 | + |
| 100 | + # If user has no team associations, assign them to default team |
| 101 | + if not user_teams: |
| 102 | + default_team = await create_default_team(session) |
| 103 | + user_team = UserTeam(user_id=str(user.id), team_id=default_team.id) |
| 104 | + session.add(user_team) |
| 105 | + await session.commit() |
| 106 | + await session.refresh(user_team) |
| 107 | + return {"user_id": str(user.id), "teams": [{"id": default_team.id, "name": default_team.name}]} |
| 108 | + |
| 109 | + # User has team associations, get the actual team objects |
| 110 | + team_ids = [ut.team_id for ut in user_teams] |
| 111 | + stmt = select(Team).where(Team.id.in_(team_ids)) |
96 | 112 | result = await session.execute(stmt) |
97 | 113 | teams = result.scalars().all() |
| 114 | + |
98 | 115 | return {"user_id": str(user.id), "teams": [{"id": team.id, "name": team.name} for team in teams]} |
0 commit comments