~edwargix/git.sr.ht

be80de0208a6561d97e1b7fc4a82acedf55324a6 — Drew DeVault 5 years ago 67d762e
API: Add (basic) complexity limit
4 files changed, 28 insertions(+), 24 deletions(-)

M api/gqlgen.yml
R api/graph/{generated/generated.go => api/generated.go}
M api/graph/schema.resolvers.go
M api/server.go
M api/gqlgen.yml => api/gqlgen.yml +2 -2
@@ 4,8 4,8 @@ schema:

# Where should the generated server code go?
exec:
  filename: graph/generated/generated.go
  package: generated
  filename: graph/api/generated.go
  package: api

# Uncomment to enable federation
# federation:

R api/graph/generated/generated.go => api/graph/api/generated.go +1 -1
@@ 1,6 1,6 @@
// Code generated by git.sr.ht/~sircmpwn/gqlgen, DO NOT EDIT.

package generated
package api

import (
	"bytes"

M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +15 -15
@@ 11,7 11,7 @@ import (

	"git.sr.ht/~sircmpwn/git.sr.ht/api/auth"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/database"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/generated"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/api"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/model"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/loaders"
	"git.sr.ht/~sircmpwn/gqlgen/graphql"


@@ 371,26 371,26 @@ func (r *userResolver) Repositories(ctx context.Context, obj *model.User, cursor
	return &model.RepositoryCursor{repos, cursor}, nil
}

// ACL returns generated.ACLResolver implementation.
func (r *Resolver) ACL() generated.ACLResolver { return &aCLResolver{r} }
// ACL returns api.ACLResolver implementation.
func (r *Resolver) ACL() api.ACLResolver { return &aCLResolver{r} }

// Commit returns generated.CommitResolver implementation.
func (r *Resolver) Commit() generated.CommitResolver { return &commitResolver{r} }
// Commit returns api.CommitResolver implementation.
func (r *Resolver) Commit() api.CommitResolver { return &commitResolver{r} }

// Mutation returns generated.MutationResolver implementation.
func (r *Resolver) Mutation() generated.MutationResolver { return &mutationResolver{r} }
// Mutation returns api.MutationResolver implementation.
func (r *Resolver) Mutation() api.MutationResolver { return &mutationResolver{r} }

// Query returns generated.QueryResolver implementation.
func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} }
// Query returns api.QueryResolver implementation.
func (r *Resolver) Query() api.QueryResolver { return &queryResolver{r} }

// Repository returns generated.RepositoryResolver implementation.
func (r *Resolver) Repository() generated.RepositoryResolver { return &repositoryResolver{r} }
// Repository returns api.RepositoryResolver implementation.
func (r *Resolver) Repository() api.RepositoryResolver { return &repositoryResolver{r} }

// Tree returns generated.TreeResolver implementation.
func (r *Resolver) Tree() generated.TreeResolver { return &treeResolver{r} }
// Tree returns api.TreeResolver implementation.
func (r *Resolver) Tree() api.TreeResolver { return &treeResolver{r} }

// User returns generated.UserResolver implementation.
func (r *Resolver) User() generated.UserResolver { return &userResolver{r} }
// User returns api.UserResolver implementation.
func (r *Resolver) User() api.UserResolver { return &userResolver{r} }

type aCLResolver struct{ *Resolver }
type commitResolver struct{ *Resolver }

M api/server.go => api/server.go +10 -6
@@ 7,7 7,7 @@ import (
	"os"

	"git.sr.ht/~sircmpwn/getopt"
	"git.sr.ht/~sircmpwn/gqlgen/graphql/handler"
	"git.sr.ht/~sircmpwn/gqlgen/handler"
	"git.sr.ht/~sircmpwn/gqlgen/graphql/playground"
	"github.com/go-chi/chi"
	"github.com/go-chi/chi/middleware"


@@ 17,11 17,11 @@ import (
	"git.sr.ht/~sircmpwn/git.sr.ht/api/auth"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/crypto"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/graph"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/generated"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/api"
	"git.sr.ht/~sircmpwn/git.sr.ht/api/loaders"
)

const defaultAddr = ":8080"
const defaultAddr = ":5101"

func main() {
	var (


@@ 70,14 70,18 @@ func main() {
	router.Use(loaders.Middleware(db))
	router.Use(middleware.Logger)

	srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{
	gqlConfig := api.Config{
		Resolvers: &graph.Resolver{DB: db},
	}))
	}
	srv := handler.GraphQL(
		api.NewExecutableSchema(gqlConfig),
		handler.ComplexityLimit(50))

	router.Handle("/query", srv)

	if debug {
		router.Handle("/", playground.Handler("GraphQL playground", "/query"))
	}
	router.Handle("/query", srv)

	log.Printf("running on %s", addr)
	log.Fatal(http.ListenAndServe(addr, router))