Skip to content

Commit 5813ad3

Browse files
Merge pull request #39 from bugout-dev/add-get-user-groups-endpoint
Add optional parameter for get /groups ?include_metrics
2 parents e9e4a29 + 4fce507 commit 5813ad3

2 files changed

Lines changed: 25 additions & 14 deletions

File tree

brood/actions.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,7 +1161,7 @@ def create_group(
11611161

11621162

11631163
def get_groups_for_user(
1164-
session: Session, user_id: uuid.UUID
1164+
session: Session, user_id: uuid.UUID, include_metrics: bool = True
11651165
) -> List[data.GroupUserResponse]:
11661166
"""
11671167
Get list of groups current user belongs to.
@@ -1180,19 +1180,27 @@ def get_groups_for_user(
11801180
.all()
11811181
)
11821182

1183-
groups_response = [
1184-
data.GroupUserResponse(
1185-
group_id=group.id,
1186-
user_id=group.user_id,
1187-
user_type=group.user_type,
1188-
autogenerated=group.autogenerated,
1189-
group_name=group.name,
1190-
parent=group.parent,
1191-
num_users=get_num_users(session, group),
1192-
num_seats=get_num_seats(session, group),
1183+
groups_response = []
1184+
1185+
for group in groups:
1186+
num_users = None
1187+
num_seats = None
1188+
if include_metrics:
1189+
num_users = get_num_users(session, group)
1190+
num_seats = get_num_seats(session, group)
1191+
1192+
groups_response.append(
1193+
data.GroupUserResponse(
1194+
group_id=group.id,
1195+
user_id=group.user_id,
1196+
user_type=group.user_type,
1197+
autogenerated=group.autogenerated,
1198+
group_name=group.name,
1199+
parent=group.parent,
1200+
num_users=num_users,
1201+
num_seats=num_seats,
1202+
)
11931203
)
1194-
for group in groups
1195-
]
11961204

11971205
return groups_response
11981206

brood/api.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -810,13 +810,16 @@ async def get_group_children_handler(
810810
async def get_groups_handler(
811811
current_user: models.User = Depends(get_current_user),
812812
db_session=Depends(yield_db_session_from_env),
813+
include_metrics: bool = Query(True),
813814
) -> data.GroupUserListResponse:
814815
"""
815816
Get list of groups user belongs to.
816817
"""
817818
groups_list: Optional[List[data.GroupUserResponse]] = []
818819
try:
819-
groups_list = actions.get_groups_for_user(db_session, user_id=current_user.id)
820+
groups_list = actions.get_groups_for_user(
821+
db_session, user_id=current_user.id, include_metrics=include_metrics
822+
)
820823
except Exception as e:
821824
logger.error(f"Error getting list of groups for user: {str(e)}")
822825
raise HTTPException(status_code=500)

0 commit comments

Comments
 (0)