refactor(server/sql): unify *ForUser track queries via nullable user_id (A1)
This commit is contained in:
+10
-16
@@ -76,29 +76,23 @@ func (h *handlers) handleSearch(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
var tracks []dbq.Track
|
||||
// userID is NULL for unauthenticated callers; the unified queries
|
||||
// skip the quarantine filter when user_id IS NULL.
|
||||
var userID pgtype.UUID
|
||||
if user, ok := auth.UserFromContext(r.Context()); ok {
|
||||
tracks, err = dbQ.SearchTracksForUser(r.Context(), dbq.SearchTracksForUserParams{
|
||||
Column1: needle, UserID: user.ID, Limit: int32(limit), Offset: int32(offset),
|
||||
})
|
||||
} else {
|
||||
tracks, err = dbQ.SearchTracks(r.Context(), dbq.SearchTracksParams{
|
||||
Column1: needle, Limit: int32(limit), Offset: int32(offset),
|
||||
})
|
||||
userID = user.ID
|
||||
}
|
||||
tracks, err := dbQ.SearchTracks(r.Context(), dbq.SearchTracksParams{
|
||||
Column1: needle, UserID: userID, Limit: int32(limit), Offset: int32(offset),
|
||||
})
|
||||
if err != nil {
|
||||
h.logger.Error("api: search tracks failed", "err", err)
|
||||
writeErr(w, apierror.InternalMsg("search failed", err))
|
||||
return
|
||||
}
|
||||
var trackTotal int64
|
||||
if user, ok := auth.UserFromContext(r.Context()); ok {
|
||||
trackTotal, err = dbQ.CountTracksMatchingForUser(r.Context(), dbq.CountTracksMatchingForUserParams{
|
||||
Column1: q, UserID: user.ID,
|
||||
})
|
||||
} else {
|
||||
trackTotal, err = dbQ.CountTracksMatching(r.Context(), q)
|
||||
}
|
||||
trackTotal, err := dbQ.CountTracksMatching(r.Context(), dbq.CountTracksMatchingParams{
|
||||
Column1: q, UserID: userID,
|
||||
})
|
||||
if err != nil {
|
||||
h.logger.Error("api: count tracks matching failed", "err", err)
|
||||
writeErr(w, apierror.InternalMsg("search failed", err))
|
||||
|
||||
Reference in New Issue
Block a user