~edwargix/git.sr.ht

895fa32707d718b8d9eed2926c1023e47b8441ea — Drew DeVault 5 years ago 99f8891
api: more cursor riggings
1 files changed, 26 insertions(+), 8 deletions(-)

M api/graph/schema.resolvers.go
M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +26 -8
@@ 80,13 80,18 @@ func (r *queryResolver) Repositories(ctx context.Context, cursor *model.Cursor, 
		err  error
		rows *sql.Rows
	)

	if cursor == nil {
		cursor = model.NewCursor(filter)
	}

	repo := (&model.Repository{}).As(`repo`)
	query := database.
		Select(ctx, repo).
		From(`repository repo`).
		Where(`repo.owner_id = ?`, auth.ForContext(ctx).ID).
		OrderBy(`repo.id DESC`).
		Limit(25)
		Where(`repo.owner_id = ?`, auth.ForContext(ctx).ID)
	query = repo.ApplyCursor(query, cursor)

	if rows, err = query.RunWith(r.DB).QueryContext(ctx); err != nil {
		panic(err)
	}


@@ 100,8 105,20 @@ func (r *queryResolver) Repositories(ctx context.Context, cursor *model.Cursor, 
		}
		repos = append(repos, &repo)
	}
	// TODO: Cursor
	return &model.RepositoryCursor{repos, nil}, nil

	if len(repos) > cursor.Count {
		cursor = &model.Cursor{
			Count:   cursor.Count,
			Next:    strconv.Itoa(repos[len(repos)-1].ID),
			OrderBy: `id DESC`,
			Search:  "",
		}
		repos = repos[:cursor.Count]
	} else {
		cursor = nil
	}

	return &model.RepositoryCursor{repos, cursor}, nil
}

func (r *queryResolver) Repository(ctx context.Context, id int) (*model.Repository, error) {


@@ 161,14 178,15 @@ func (r *userResolver) Repositories(ctx context.Context, obj *model.User, cursor
		rows *sql.Rows
	)

	if cursor == nil {
		cursor = model.NewCursor(filter)
	}

	repo := (&model.Repository{}).As(`repo`)
	query := database.
		Select(ctx, repo).
		From(`repository repo`).
		Where(`repo.owner_id = ?`, obj.ID)
	if cursor == nil {
		cursor = model.NewCursor(filter)
	}
	query = repo.ApplyCursor(query, cursor)

	if rows, err = query.RunWith(r.DB).QueryContext(ctx); err != nil {