~edwargix/git.sr.ht

d3869ff5f243fe1abc945d4286ebdb358f17c194 — Adnan Maolood 2 years ago a15657f
api/loaders: Remove unused loader
2 files changed, 0 insertions(+), 54 deletions(-)

M api/loaders/generate.go
M api/loaders/middleware.go
M api/loaders/generate.go => api/loaders/generate.go +0 -1
@@ 4,7 4,6 @@
package loaders

//go:generate ./gen RepositoriesByIDLoader int api/graph/model.Repository
//go:generate ./gen RepositoriesByNameLoader string api/graph/model.Repository
//go:generate ./gen RepositoriesByOwnerRepoNameLoader [2]string api/graph/model.Repository
//go:generate ./gen UsersByIDLoader int api/graph/model.User
//go:generate ./gen UsersByNameLoader string api/graph/model.User

M api/loaders/middleware.go => api/loaders/middleware.go +0 -53
@@ 25,7 25,6 @@ type Loaders struct {
	UsersByID                   UsersByIDLoader
	UsersByName                 UsersByNameLoader
	RepositoriesByID            RepositoriesByIDLoader
	RepositoriesByName          RepositoriesByNameLoader
	RepositoriesByOwnerRepoName RepositoriesByOwnerRepoNameLoader
}



@@ 167,53 166,6 @@ func fetchRepositoriesByID(ctx context.Context) func(ids []int) ([]*model.Reposi
	}
}

func fetchRepositoriesByName(ctx context.Context) func(names []string) ([]*model.Repository, []error) {
	return func(names []string) ([]*model.Repository, []error) {
		repos := make([]*model.Repository, len(names))
		if err := database.WithTx(ctx, &sql.TxOptions{
			Isolation: 0,
			ReadOnly:  true,
		}, func(tx *sql.Tx) error {
			var (
				err  error
				rows *sql.Rows
			)
			query := database.
				Select(ctx, (&model.Repository{}).As(`repo`)).
				Distinct().
				From(`repository repo`).
				Where(sq.And{
					sq.Expr(`repo.name = ANY(?)`, pq.Array(names)),
					sq.Expr(`repo.owner_id = ?`, auth.ForContext(ctx).UserID),
				})
			if rows, err = query.RunWith(tx).QueryContext(ctx); err != nil {
				panic(err)
			}
			defer rows.Close()

			reposByName := map[string]*model.Repository{}
			for rows.Next() {
				repo := model.Repository{}
				if err := rows.Scan(database.Scan(ctx, &repo)...); err != nil {
					panic(err)
				}
				reposByName[repo.Name] = &repo
			}
			if err = rows.Err(); err != nil {
				panic(err)
			}

			for i, name := range names {
				repos[i] = reposByName[name]
			}
			return nil
		}); err != nil {
			panic(err)
		}
		return repos, nil
	}
}

func fetchRepositoriesByOwnerRepoName(ctx context.Context) func(names [][2]string) ([]*model.Repository, []error) {
	return func(names [][2]string) ([]*model.Repository, []error) {
		repos := make([]*model.Repository, len(names))


@@ 300,11 252,6 @@ func Middleware(next http.Handler) http.Handler {
				wait:     1 * time.Millisecond,
				fetch:    fetchRepositoriesByID(r.Context()),
			},
			RepositoriesByName: RepositoriesByNameLoader{
				maxBatch: 100,
				wait:     1 * time.Millisecond,
				fetch:    fetchRepositoriesByName(r.Context()),
			},
			RepositoriesByOwnerRepoName: RepositoriesByOwnerRepoNameLoader{
				maxBatch: 100,
				wait:     1 * time.Millisecond,