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.
OrderBy(database.WithAlias(t.alias, "id")+" DESC").
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(
tr_ua.permissions,
ua.permissions,
CASE WHEN tr.owner_id = ?
THEN ?
ELSE tr.default_access
END)`,
auser.UserID, ACCESS_ALL).
Column(`tr_ua.id`)
Column(`ua.id`)
if rows, err = q.RunWith(runner).QueryContext(ctx); err != nil {
panic(err)

View File

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