Skip to content

Commit 55a6f68

Browse files
feat: add users field to TeamDTO and update team detail view to include user information (#159)
1 parent 52d22ad commit 55a6f68

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

todo/dto/team_dto.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pydantic import BaseModel, validator
22
from typing import List, Optional
33
from datetime import datetime
4+
from todo.dto.user_dto import UserDTO
45
from todo.repositories.user_repository import UserRepository
56

67

@@ -48,3 +49,4 @@ class TeamDTO(BaseModel):
4849
updated_by: str
4950
created_at: datetime
5051
updated_at: datetime
52+
users: Optional[List[UserDTO]] = None

todo/repositories/team_repository.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ def get_users_by_team_id(cls, team_id: str) -> list[str]:
9797
"""
9898
collection = cls.get_collection()
9999
try:
100-
user_teams_data = collection.find({"team_id": ObjectId(team_id), "is_active": True})
101-
return [str(data["user_id"]) for data in user_teams_data]
100+
user_teams_data = list(collection.find({"team_id": team_id, "is_active": True}))
101+
return [data["user_id"] for data in user_teams_data]
102102
except Exception:
103103
return []
104104

todo/views/team.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,15 @@ def get(self, request: Request, team_id: str):
140140
Retrieve a single team by ID, or users in the team if ?member=true.
141141
"""
142142
try:
143+
team_dto: TeamDTO = TeamService.get_team_by_id(team_id)
143144
member = request.query_params.get("member", "false").lower() == "true"
144145
if member:
145146
from todo.repositories.team_repository import UserTeamDetailsRepository
146147

147148
user_ids = UserTeamDetailsRepository.get_users_by_team_id(team_id)
148149
users = UserService.get_users_by_ids(user_ids)
149-
return Response(data=[user.model_dump(mode="json") for user in users], status=status.HTTP_200_OK)
150-
else:
151-
team_dto: TeamDTO = TeamService.get_team_by_id(team_id)
152-
return Response(data=team_dto.model_dump(mode="json"), status=status.HTTP_200_OK)
150+
team_dto.users = users if member else None
151+
return Response(data=team_dto.model_dump(mode="json"), status=status.HTTP_200_OK)
153152
except ValueError as e:
154153
fallback_response = ApiErrorResponse(
155154
statusCode=404,

0 commit comments

Comments
 (0)