mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-01 14:46:36 +08:00
autoresearch iter 16: add batch user lookup and use it for log enrichment
enrichAccessLogsWithUsers preferred the UserService contract over the local repository — correct layering, but it looped GetUserByID and issued up to a page-size worth of separate SELECTs against w_users, while the single-query WHERE id IN variant was only reached in the no-contract fallback branch. Give the contract a GetUsersByIDs so callers can keep the layering and drop the N+1. The test asserts 1 query batched against 3 per-id, so the counting itself is checked.
This commit is contained in:
@@ -62,6 +62,10 @@ type UserService interface {
|
||||
// GetUserByID retrieves a user by ID.
|
||||
GetUserByID(ctx context.Context, id uint64) (*UserDTO, error)
|
||||
|
||||
// GetUsersByIDs retrieves several users in one round-trip. An empty ids
|
||||
// slice yields no results and touches no storage.
|
||||
GetUsersByIDs(ctx context.Context, ids []uint64) ([]*UserDTO, error)
|
||||
|
||||
// GetUserByUsername retrieves a user by username.
|
||||
GetUserByUsername(ctx context.Context, username string) (*UserDTO, error)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user