Skip to content

Commit 29fac24

Browse files
aapelivclaude
andcommitted
Backend/moderation: use UMS helper in get_num_references
Filter reference counts through where_moderated_content_visible instead of checking ModerationState.visibility directly, matching ListReferences. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 1e55619 commit 29fac24

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

app/backend/src/couchers/servicers/api.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
MeetupStatus,
3333
Message,
3434
ModerationObjectType,
35-
ModerationState,
36-
ModerationVisibility,
3735
Notification,
3836
NotificationDeliveryType,
3937
ParkingDetails,
@@ -1013,12 +1011,12 @@ def response_rate_to_pb(response_rate: UserResponseRate | None) -> dict[str, goo
10131011
}
10141012

10151013

1016-
def get_num_references(session: Session, user_ids: Iterable[int]) -> dict[int, int]:
1014+
def get_num_references(session: Session, context: CouchersContext, user_ids: Iterable[int]) -> dict[int, int]:
1015+
query = where_moderated_content_visible(
1016+
select(Reference.to_user_id, func.count(Reference.id)), context, Reference, is_list_operation=True
1017+
)
10171018
query = (
1018-
select(Reference.to_user_id, func.count(Reference.id))
1019-
.join(ModerationState, ModerationState.id == Reference.moderation_state_id)
1020-
.where(ModerationState.visibility == ModerationVisibility.visible)
1021-
.where(Reference.to_user_id.in_(user_ids))
1019+
query.where(Reference.to_user_id.in_(user_ids))
10221020
.join(User, User.id == Reference.from_user_id)
10231021
.where(User.is_visible)
10241022
.group_by(Reference.to_user_id)
@@ -1054,7 +1052,7 @@ def user_model_to_pb(
10541052
f"Context user_id: {context.user_id}, db_user id: {db_user.id} (username: {db_user.username})"
10551053
)
10561054

1057-
num_references = get_num_references(session, [db_user.id]).get(db_user.id, 0)
1055+
num_references = get_num_references(session, context, [db_user.id]).get(db_user.id, 0)
10581056
lat, lng = db_user.coordinates
10591057

10601058
pending_friend_request = None

app/backend/src/couchers/servicers/search.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ def UserSearchV2(
741741
).all()
742742
}
743743

744-
ref_counts_by_user_id = get_num_references(session, user_ids_to_return)
744+
ref_counts_by_user_id = get_num_references(session, context, user_ids_to_return)
745745

746746
def _user_to_search_user(user_id: int) -> search_pb2.SearchUser:
747747
lite_user = LiteUser_by_id[user_id]

0 commit comments

Comments
 (0)