Code Duplication    Length = 29-32 lines in 2 locations

byceps/services/guest_server/guest_server_service.py 2 locations

@@ 317-348 (lines=32) @@
314
    ]
315
316
317
def get_servers_for_owner_and_party(
318
    owner_id: UserID, party_id: PartyID
319
) -> list[Server]:
320
    """Return the servers owned by the user for the party."""
321
    db_servers = (
322
        db.session.scalars(
323
            select(DbGuestServer)
324
            .filter_by(owner_id=owner_id)
325
            .filter_by(party_id=party_id)
326
            .join(DbGuestServerAddress)
327
        )
328
        .unique()
329
        .all()
330
    )
331
332
    creator_ids = {db_server.creator_id for db_server in db_servers}
333
    creators_by_id = user_service.get_users_indexed_by_id(
334
        creator_ids, include_avatars=True
335
    )
336
337
    owner_ids = {db_server.owner_id for db_server in db_servers}
338
    owners_by_id = user_service.get_users_indexed_by_id(
339
        owner_ids, include_avatars=True
340
    )
341
342
    return [
343
        _db_entity_to_server(
344
            db_server,
345
            creators_by_id[db_server.creator_id],
346
            owners_by_id[db_server.owner_id],
347
        )
348
        for db_server in db_servers
349
    ]
350
351
@@ 285-313 (lines=29) @@
282
    return _db_entity_to_server(db_server, creator, owner)
283
284
285
def get_all_servers_for_party(party_id: PartyID) -> list[Server]:
286
    """Return all servers for the party."""
287
    db_servers = (
288
        db.session.scalars(
289
            select(DbGuestServer)
290
            .filter_by(party_id=party_id)
291
            .join(DbGuestServerAddress)
292
        )
293
        .unique()
294
        .all()
295
    )
296
297
    creator_ids = {db_server.creator_id for db_server in db_servers}
298
    creators_by_id = user_service.get_users_indexed_by_id(
299
        creator_ids, include_avatars=True
300
    )
301
302
    owner_ids = {db_server.owner_id for db_server in db_servers}
303
    owners_by_id = user_service.get_users_indexed_by_id(
304
        owner_ids, include_avatars=True
305
    )
306
307
    return [
308
        _db_entity_to_server(
309
            db_server,
310
            creators_by_id[db_server.creator_id],
311
            owners_by_id[db_server.owner_id],
312
        )
313
        for db_server in db_servers
314
    ]
315
316