|
1 | 1 | from fastapi import APIRouter, Depends, HTTPException |
2 | | -from transformerlab.shared.models.user_model import User |
| 2 | +from transformerlab.shared.models.user_model import User, Team, UserTeam |
3 | 3 | from transformerlab.models.users import ( |
4 | 4 | fastapi_users, |
5 | 5 | auth_backend, |
|
11 | 11 | get_refresh_strategy, |
12 | 12 | jwt_authentication, |
13 | 13 | ) |
| 14 | +from sqlalchemy.ext.asyncio import AsyncSession |
| 15 | +from sqlalchemy import select |
14 | 16 |
|
15 | 17 | from jose import jwt, JWTError |
16 | 18 |
|
@@ -89,13 +91,8 @@ async def refresh_access_token( |
89 | 91 |
|
90 | 92 |
|
91 | 93 | @router.get("/users/me/teams") |
92 | | -async def get_user_teams(user: User = Depends(current_active_user)): |
93 | | - # Placeholder implementation |
94 | | - # In a real application, fetch teams from the database |
95 | | - return { |
96 | | - "user_id": user.id, |
97 | | - "teams": [ |
98 | | - {"id": "550e8400-e29b-41d4-a716-446655440000", "name": "Transformer Lab"}, |
99 | | - {"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "name": "Team 2"}, |
100 | | - ], |
101 | | - } |
| 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)) |
| 96 | + result = await session.execute(stmt) |
| 97 | + teams = result.scalars().all() |
| 98 | + return {"user_id": str(user.id), "teams": [{"id": team.id, "name": team.name} for team in teams]} |
0 commit comments