api/graph: Fix duplicates in User.trackers query

Fixes: https://todo.sr.ht/~sircmpwn/todo.sr.ht/273
This commit is contained in:
Adnan Maolood 2022-07-23 08:09:55 -04:00 committed by Drew DeVault
parent 268dacdc07
commit 75add26e2f
2 changed files with 3 additions and 4 deletions

View File

@ -91,15 +91,15 @@ func (t *Tracker) QueryWithCursor(ctx context.Context, runner sq.BaseRunner,
q = q. q = q.
OrderBy(database.WithAlias(t.alias, "id")+" DESC"). OrderBy(database.WithAlias(t.alias, "id")+" DESC").
Limit(uint64(cur.Count+1)). Limit(uint64(cur.Count+1)).
LeftJoin(`user_access tr_ua ON tr_ua.tracker_id = tr.id AND tr_ua.user_id = ?`, auser.UserID). LeftJoin(`user_access ua ON ua.tracker_id = tr.id AND ua.user_id = ?`, auser.UserID).
Column(`COALESCE( Column(`COALESCE(
tr_ua.permissions, ua.permissions,
CASE WHEN tr.owner_id = ? CASE WHEN tr.owner_id = ?
THEN ? THEN ?
ELSE tr.default_access ELSE tr.default_access
END)`, END)`,
auser.UserID, ACCESS_ALL). auser.UserID, ACCESS_ALL).
Column(`tr_ua.id`) Column(`ua.id`)
if rows, err = q.RunWith(runner).QueryContext(ctx); err != nil { if rows, err = q.RunWith(runner).QueryContext(ctx); err != nil {
panic(err) panic(err)

View File

@ -3225,7 +3225,6 @@ func (r *userResolver) Trackers(ctx context.Context, obj *model.User, cursor *co
query := database. query := database.
Select(ctx, tracker). Select(ctx, tracker).
From(`tracker tr`). From(`tracker tr`).
LeftJoin(`user_access ua ON ua.tracker_id = tr.id`).
Where(sq.And{ Where(sq.And{
sq.Expr(`tr.owner_id = ?`, obj.ID), sq.Expr(`tr.owner_id = ?`, obj.ID),
sq.Or{ sq.Or{