From 8fa0b258ac89781dae269790a4bde09cbcd2f324 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Sun, 29 Jul 2018 18:58:42 +0200 Subject: cleaning --- graphql2/gqlgen.yml | 32 - graphql2/handler.go | 18 - graphql2/relay.go | 39 - graphql2/resolvers/bug.go | 61 - graphql2/resolvers/generated_graph.go | 2628 --------------------------------- graphql2/resolvers/generated_model.go | 88 -- graphql2/resolvers/operations.go | 54 - graphql2/resolvers/pager_bug.go | 225 --- graphql2/resolvers/pager_comment.go | 225 --- graphql2/resolvers/pager_operation.go | 225 --- graphql2/resolvers/pagers.go | 51 - graphql2/resolvers/pagers_template.go | 224 --- graphql2/resolvers/query.go | 36 - graphql2/resolvers/repo.go | 26 - graphql2/resolvers/root.go | 53 - graphql2/schema.graphql | 181 --- 16 files changed, 4166 deletions(-) delete mode 100644 graphql2/gqlgen.yml delete mode 100644 graphql2/handler.go delete mode 100644 graphql2/relay.go delete mode 100644 graphql2/resolvers/bug.go delete mode 100644 graphql2/resolvers/generated_graph.go delete mode 100644 graphql2/resolvers/generated_model.go delete mode 100644 graphql2/resolvers/operations.go delete mode 100644 graphql2/resolvers/pager_bug.go delete mode 100644 graphql2/resolvers/pager_comment.go delete mode 100644 graphql2/resolvers/pager_operation.go delete mode 100644 graphql2/resolvers/pagers.go delete mode 100644 graphql2/resolvers/pagers_template.go delete mode 100644 graphql2/resolvers/query.go delete mode 100644 graphql2/resolvers/repo.go delete mode 100644 graphql2/resolvers/root.go delete mode 100644 graphql2/schema.graphql (limited to 'graphql2') diff --git a/graphql2/gqlgen.yml b/graphql2/gqlgen.yml deleted file mode 100644 index d7c096bf..00000000 --- a/graphql2/gqlgen.yml +++ /dev/null @@ -1,32 +0,0 @@ -schema: schema.graphql -exec: - filename: resolvers/generated_graph.go -model: - filename: resolvers/generated_model.go - -models: - Repository: - fields: - bug: - resolver: true - allBugs: - resolver: true -# model: github.com/MichaelMure/git-bug/graphql2/resolvers.repoResolver - Bug: - model: github.com/MichaelMure/git-bug/bug.Snapshot - Comment: - model: github.com/MichaelMure/git-bug/bug.Comment - Person: - model: github.com/MichaelMure/git-bug/bug.Person - Label: - model: github.com/MichaelMure/git-bug/bug.Label - CreateOperation: - model: github.com/MichaelMure/git-bug/bug/operations.CreateOperation - SetTitleOperation: - model: github.com/MichaelMure/git-bug/bug/operations.SetTitleOperation - AddCommentOperation: - model: github.com/MichaelMure/git-bug/bug/operations.AddCommentOperation - SetStatusOperation: - model: github.com/MichaelMure/git-bug/bug/operations.SetStatusOperation - LabelChangeOperation: - model: github.com/MichaelMure/git-bug/bug/operations.LabelChangeOperation diff --git a/graphql2/handler.go b/graphql2/handler.go deleted file mode 100644 index 2bf6df8c..00000000 --- a/graphql2/handler.go +++ /dev/null @@ -1,18 +0,0 @@ -//go:generate gorunpkg github.com/vektah/gqlgen - -package graphql2 - -import ( - "github.com/MichaelMure/git-bug/graphql2/resolvers" - "github.com/MichaelMure/git-bug/repository" - "github.com/vektah/gqlgen/handler" - "net/http" -) - -func NewHandler(repo repository.Repo) http.Handler { - backend := resolvers.NewRootResolver() - - backend.RegisterDefaultRepository(repo) - - return handler.GraphQL(resolvers.NewExecutableSchema(backend)) -} diff --git a/graphql2/relay.go b/graphql2/relay.go deleted file mode 100644 index b037f28b..00000000 --- a/graphql2/relay.go +++ /dev/null @@ -1,39 +0,0 @@ -package graphql2 - -import ( - "encoding/base64" - "strings" -) - - -type ResolvedGlobalID struct { - Type string `json:"type"` - ID string `json:"id"` -} - -// Takes a type name and an ID specific to that type name, and returns a -// "global ID" that is unique among all types. -func ToGlobalID(ttype string, id string) string { - str := ttype + ":" + id - encStr := base64.StdEncoding.EncodeToString([]byte(str)) - return encStr -} - -// Takes the "global ID" created by toGlobalID, and returns the type name and ID -// used to create it. -func FromGlobalID(globalID string) *ResolvedGlobalID { - strID := "" - b, err := base64.StdEncoding.DecodeString(globalID) - if err == nil { - strID = string(b) - } - tokens := strings.Split(strID, ":") - if len(tokens) < 2 { - return nil - } - return &ResolvedGlobalID{ - Type: tokens[0], - ID: tokens[1], - } -} - diff --git a/graphql2/resolvers/bug.go b/graphql2/resolvers/bug.go deleted file mode 100644 index ad6c288b..00000000 --- a/graphql2/resolvers/bug.go +++ /dev/null @@ -1,61 +0,0 @@ -package resolvers - -import ( - "context" - "github.com/MichaelMure/git-bug/bug" - "github.com/MichaelMure/git-bug/cache" -) - -type bugResolver struct { - cache cache.Cacher -} - -func (bugResolver) Status(ctx context.Context, obj *bug.Snapshot) (Status, error) { - return convertStatus(obj.Status) -} - -func (bugResolver) Comments(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (CommentConnection, error) { - var connection CommentConnection - - edger := func(comment bug.Comment, offset int) Edge { - return CommentEdge{ - Node: comment, - Cursor: offsetToCursor(offset), - } - } - - edges, pageInfo, err := BugCommentPaginate(obj.Comments, edger, input) - - if err != nil { - return connection, err - } - - connection.Edges = edges - connection.PageInfo = pageInfo - connection.TotalCount = len(obj.Comments) - - return connection, nil -} - -func (bugResolver) Operations(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (OperationConnection, error) { - var connection OperationConnection - - edger := func(op bug.Operation, offset int) Edge { - return OperationEdge{ - Node: op.(OperationUnion), - Cursor: offsetToCursor(offset), - } - } - - edges, pageInfo, err := BugOperationPaginate(obj.Operations, edger, input) - - if err != nil { - return connection, err - } - - connection.Edges = edges - connection.PageInfo = pageInfo - connection.TotalCount = len(obj.Operations) - - return connection, nil -} diff --git a/graphql2/resolvers/generated_graph.go b/graphql2/resolvers/generated_graph.go deleted file mode 100644 index 3d752ddc..00000000 --- a/graphql2/resolvers/generated_graph.go +++ /dev/null @@ -1,2628 +0,0 @@ -// Code generated by github.com/vektah/gqlgen, DO NOT EDIT. - -package resolvers - -import ( - "bytes" - context "context" - fmt "fmt" - strconv "strconv" - time "time" - - bug "github.com/MichaelMure/git-bug/bug" - operations "github.com/MichaelMure/git-bug/bug/operations" - graphql "github.com/vektah/gqlgen/graphql" - introspection "github.com/vektah/gqlgen/neelance/introspection" - query "github.com/vektah/gqlgen/neelance/query" - schema "github.com/vektah/gqlgen/neelance/schema" -) - -// MakeExecutableSchema creates an ExecutableSchema from the Resolvers interface. -func MakeExecutableSchema(resolvers Resolvers) graphql.ExecutableSchema { - return &executableSchema{resolvers: resolvers} -} - -// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface. -func NewExecutableSchema(resolvers ResolverRoot) graphql.ExecutableSchema { - return MakeExecutableSchema(shortMapper{r: resolvers}) -} - -type Resolvers interface { - AddCommentOperation_date(ctx context.Context, obj *operations.AddCommentOperation) (time.Time, error) - - Bug_status(ctx context.Context, obj *bug.Snapshot) (Status, error) - - Bug_comments(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (CommentConnection, error) - Bug_operations(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (OperationConnection, error) - - CreateOperation_date(ctx context.Context, obj *operations.CreateOperation) (time.Time, error) - - LabelChangeOperation_date(ctx context.Context, obj *operations.LabelChangeOperation) (time.Time, error) - - Query_defaultRepository(ctx context.Context) (*repoResolver, error) - Query_repository(ctx context.Context, id string) (*repoResolver, error) - - Repository_allBugs(ctx context.Context, obj *repoResolver, input ConnectionInput) (BugConnection, error) - Repository_bug(ctx context.Context, obj *repoResolver, prefix string) (*bug.Snapshot, error) - - SetStatusOperation_date(ctx context.Context, obj *operations.SetStatusOperation) (time.Time, error) - SetStatusOperation_status(ctx context.Context, obj *operations.SetStatusOperation) (Status, error) - - SetTitleOperation_date(ctx context.Context, obj *operations.SetTitleOperation) (time.Time, error) -} - -type ResolverRoot interface { - AddCommentOperation() AddCommentOperationResolver - Bug() BugResolver - CreateOperation() CreateOperationResolver - LabelChangeOperation() LabelChangeOperationResolver - Query() QueryResolver - Repository() RepositoryResolver - SetStatusOperation() SetStatusOperationResolver - SetTitleOperation() SetTitleOperationResolver -} -type AddCommentOperationResolver interface { - Date(ctx context.Context, obj *operations.AddCommentOperation) (time.Time, error) -} -type BugResolver interface { - Status(ctx context.Context, obj *bug.Snapshot) (Status, error) - - Comments(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (CommentConnection, error) - Operations(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (OperationConnection, error) -} -type CreateOperationResolver interface { - Date(ctx context.Context, obj *operations.CreateOperation) (time.Time, error) -} -type LabelChangeOperationResolver interface { - Date(ctx context.Context, obj *operations.LabelChangeOperation) (time.Time, error) -} -type QueryResolver interface { - DefaultRepository(ctx context.Context) (*repoResolver, error) - Repository(ctx context.Context, id string) (*repoResolver, error) -} -type RepositoryResolver interface { - AllBugs(ctx context.Context, obj *repoResolver, input ConnectionInput) (BugConnection, error) - Bug(ctx context.Context, obj *repoResolver, prefix string) (*bug.Snapshot, error) -} -type SetStatusOperationResolver interface { - Date(ctx context.Context, obj *operations.SetStatusOperation) (time.Time, error) - Status(ctx context.Context, obj *operations.SetStatusOperation) (Status, error) -} -type SetTitleOperationResolver interface { - Date(ctx context.Context, obj *operations.SetTitleOperation) (time.Time, error) -} - -type shortMapper struct { - r ResolverRoot -} - -func (s shortMapper) AddCommentOperation_date(ctx context.Context, obj *operations.AddCommentOperation) (time.Time, error) { - return s.r.AddCommentOperation().Date(ctx, obj) -} - -func (s shortMapper) Bug_status(ctx context.Context, obj *bug.Snapshot) (Status, error) { - return s.r.Bug().Status(ctx, obj) -} - -func (s shortMapper) Bug_comments(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (CommentConnection, error) { - return s.r.Bug().Comments(ctx, obj, input) -} - -func (s shortMapper) Bug_operations(ctx context.Context, obj *bug.Snapshot, input ConnectionInput) (OperationConnection, error) { - return s.r.Bug().Operations(ctx, obj, input) -} - -func (s shortMapper) CreateOperation_date(ctx context.Context, obj *operations.CreateOperation) (time.Time, error) { - return s.r.CreateOperation().Date(ctx, obj) -} - -func (s shortMapper) LabelChangeOperation_date(ctx context.Context, obj *operations.LabelChangeOperation) (time.Time, error) { - return s.r.LabelChangeOperation().Date(ctx, obj) -} - -func (s shortMapper) Query_defaultRepository(ctx context.Context) (*repoResolver, error) { - return s.r.Query().DefaultRepository(ctx) -} - -func (s shortMapper) Query_repository(ctx context.Context, id string) (*repoResolver, error) { - return s.r.Query().Repository(ctx, id) -} - -func (s shortMapper) Repository_allBugs(ctx context.Context, obj *repoResolver, input ConnectionInput) (BugConnection, error) { - return s.r.Repository().AllBugs(ctx, obj, input) -} - -func (s shortMapper) Repository_bug(ctx context.Context, obj *repoResolver, prefix string) (*bug.Snapshot, error) { - return s.r.Repository().Bug(ctx, obj, prefix) -} - -func (s shortMapper) SetStatusOperation_date(ctx context.Context, obj *operations.SetStatusOperation) (time.Time, error) { - return s.r.SetStatusOperation().Date(ctx, obj) -} - -func (s shortMapper) SetStatusOperation_status(ctx context.Context, obj *operations.SetStatusOperation) (Status, error) { - return s.r.SetStatusOperation().Status(ctx, obj) -} - -func (s shortMapper) SetTitleOperation_date(ctx context.Context, obj *operations.SetTitleOperation) (time.Time, error) { - return s.r.SetTitleOperation().Date(ctx, obj) -} - -type executableSchema struct { - resolvers Resolvers -} - -func (e *executableSchema) Schema() *schema.Schema { - return parsedSchema -} - -func (e *executableSchema) Query(ctx context.Context, op *query.Operation) *graphql.Response { - ec := executionContext{graphql.GetRequestContext(ctx), e.resolvers} - - buf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte { - data := ec._Query(ctx, op.Selections) - var buf bytes.Buffer - data.MarshalGQL(&buf) - return buf.Bytes() - }) - - return &graphql.Response{ - Data: buf, - Errors: ec.Errors, - } -} - -func (e *executableSchema) Mutation(ctx context.Context, op *query.Operation) *graphql.Response { - return graphql.ErrorResponse(ctx, "mutations are not supported") -} - -func (e *executableSchema) Subscription(ctx context.Context, op *query.Operation) func() *graphql.Response { - return graphql.OneShot(graphql.ErrorResponse(ctx, "subscriptions are not supported")) -} - -type executionContext struct { - *graphql.RequestContext - - resolvers Resolvers -} - -var addCommentOperationImplementors = []string{"AddCommentOperation", "Operation", "Authored"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _AddCommentOperation(ctx context.Context, sel []query.Selection, obj *operations.AddCommentOperation) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, addCommentOperationImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("AddCommentOperation") - case "author": - out.Values[i] = ec._AddCommentOperation_author(ctx, field, obj) - case "date": - out.Values[i] = ec._AddCommentOperation_date(ctx, field, obj) - case "message": - out.Values[i] = ec._AddCommentOperation_message(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _AddCommentOperation_author(ctx context.Context, field graphql.CollectedField, obj *operations.AddCommentOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "AddCommentOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Author - return ec._Person(ctx, field.Selections, &res) -} - -func (ec *executionContext) _AddCommentOperation_date(ctx context.Context, field graphql.CollectedField, obj *operations.AddCommentOperation) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "AddCommentOperation", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.AddCommentOperation_date(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(time.Time) - return graphql.MarshalTime(res) - }) -} - -func (ec *executionContext) _AddCommentOperation_message(ctx context.Context, field graphql.CollectedField, obj *operations.AddCommentOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "AddCommentOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Message - return graphql.MarshalString(res) -} - -var bugImplementors = []string{"Bug"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _Bug(ctx context.Context, sel []query.Selection, obj *bug.Snapshot) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, bugImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Bug") - case "id": - out.Values[i] = ec._Bug_id(ctx, field, obj) - case "humanId": - out.Values[i] = ec._Bug_humanId(ctx, field, obj) - case "title": - out.Values[i] = ec._Bug_title(ctx, field, obj) - case "status": - out.Values[i] = ec._Bug_status(ctx, field, obj) - case "labels": - out.Values[i] = ec._Bug_labels(ctx, field, obj) - case "comments": - out.Values[i] = ec._Bug_comments(ctx, field, obj) - case "operations": - out.Values[i] = ec._Bug_operations(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _Bug_id(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Bug" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Id() - return graphql.MarshalString(res) -} - -func (ec *executionContext) _Bug_humanId(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Bug" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.HumanId() - return graphql.MarshalString(res) -} - -func (ec *executionContext) _Bug_title(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Bug" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Title - return graphql.MarshalString(res) -} - -func (ec *executionContext) _Bug_status(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Bug", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Bug_status(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(Status) - return res - }) -} - -func (ec *executionContext) _Bug_labels(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Bug" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Labels - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return res[idx1] - }()) - } - return arr1 -} - -func (ec *executionContext) _Bug_comments(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 ConnectionInput - if tmp, ok := field.Args["input"]; ok { - var err error - arg0, err = UnmarshalConnectionInput(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["input"] = arg0 - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Bug", - Args: args, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Bug_comments(ctx, obj, args["input"].(ConnectionInput)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(CommentConnection) - return ec._CommentConnection(ctx, field.Selections, &res) - }) -} - -func (ec *executionContext) _Bug_operations(ctx context.Context, field graphql.CollectedField, obj *bug.Snapshot) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 ConnectionInput - if tmp, ok := field.Args["input"]; ok { - var err error - arg0, err = UnmarshalConnectionInput(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["input"] = arg0 - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Bug", - Args: args, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Bug_operations(ctx, obj, args["input"].(ConnectionInput)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(OperationConnection) - return ec._OperationConnection(ctx, field.Selections, &res) - }) -} - -var bugConnectionImplementors = []string{"BugConnection"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _BugConnection(ctx context.Context, sel []query.Selection, obj *BugConnection) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, bugConnectionImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("BugConnection") - case "edges": - out.Values[i] = ec._BugConnection_edges(ctx, field, obj) - case "pageInfo": - out.Values[i] = ec._BugConnection_pageInfo(ctx, field, obj) - case "totalCount": - out.Values[i] = ec._BugConnection_totalCount(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _BugConnection_edges(ctx context.Context, field graphql.CollectedField, obj *BugConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "BugConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Edges - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - if res[idx1] == nil { - return graphql.Null - } - return ec._BugEdge(ctx, field.Selections, res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) _BugConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *BugConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "BugConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.PageInfo - return ec._PageInfo(ctx, field.Selections, &res) -} - -func (ec *executionContext) _BugConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *BugConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "BugConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.TotalCount - return graphql.MarshalInt(res) -} - -var bugEdgeImplementors = []string{"BugEdge"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _BugEdge(ctx context.Context, sel []query.Selection, obj *BugEdge) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, bugEdgeImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("BugEdge") - case "cursor": - out.Values[i] = ec._BugEdge_cursor(ctx, field, obj) - case "node": - out.Values[i] = ec._BugEdge_node(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _BugEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *BugEdge) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "BugEdge" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Cursor - return graphql.MarshalString(res) -} - -func (ec *executionContext) _BugEdge_node(ctx context.Context, field graphql.CollectedField, obj *BugEdge) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "BugEdge" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Node - return ec._Bug(ctx, field.Selections, &res) -} - -var commentImplementors = []string{"Comment", "Authored"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _Comment(ctx context.Context, sel []query.Selection, obj *bug.Comment) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, commentImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Comment") - case "author": - out.Values[i] = ec._Comment_author(ctx, field, obj) - case "message": - out.Values[i] = ec._Comment_message(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _Comment_author(ctx context.Context, field graphql.CollectedField, obj *bug.Comment) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Comment" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Author - return ec._Person(ctx, field.Selections, &res) -} - -func (ec *executionContext) _Comment_message(ctx context.Context, field graphql.CollectedField, obj *bug.Comment) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Comment" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Message - return graphql.MarshalString(res) -} - -var commentConnectionImplementors = []string{"CommentConnection"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _CommentConnection(ctx context.Context, sel []query.Selection, obj *CommentConnection) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, commentConnectionImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("CommentConnection") - case "edges": - out.Values[i] = ec._CommentConnection_edges(ctx, field, obj) - case "pageInfo": - out.Values[i] = ec._CommentConnection_pageInfo(ctx, field, obj) - case "totalCount": - out.Values[i] = ec._CommentConnection_totalCount(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _CommentConnection_edges(ctx context.Context, field graphql.CollectedField, obj *CommentConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CommentConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Edges - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec._CommentEdge(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) _CommentConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *CommentConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CommentConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.PageInfo - return ec._PageInfo(ctx, field.Selections, &res) -} - -func (ec *executionContext) _CommentConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *CommentConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CommentConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.TotalCount - return graphql.MarshalInt(res) -} - -var commentEdgeImplementors = []string{"CommentEdge"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _CommentEdge(ctx context.Context, sel []query.Selection, obj *CommentEdge) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, commentEdgeImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("CommentEdge") - case "cursor": - out.Values[i] = ec._CommentEdge_cursor(ctx, field, obj) - case "node": - out.Values[i] = ec._CommentEdge_node(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _CommentEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *CommentEdge) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CommentEdge" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Cursor - return graphql.MarshalString(res) -} - -func (ec *executionContext) _CommentEdge_node(ctx context.Context, field graphql.CollectedField, obj *CommentEdge) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CommentEdge" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Node - return ec._Comment(ctx, field.Selections, &res) -} - -var createOperationImplementors = []string{"CreateOperation", "Operation", "Authored"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _CreateOperation(ctx context.Context, sel []query.Selection, obj *operations.CreateOperation) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, createOperationImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("CreateOperation") - case "author": - out.Values[i] = ec._CreateOperation_author(ctx, field, obj) - case "date": - out.Values[i] = ec._CreateOperation_date(ctx, field, obj) - case "title": - out.Values[i] = ec._CreateOperation_title(ctx, field, obj) - case "message": - out.Values[i] = ec._CreateOperation_message(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _CreateOperation_author(ctx context.Context, field graphql.CollectedField, obj *operations.CreateOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CreateOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Author - return ec._Person(ctx, field.Selections, &res) -} - -func (ec *executionContext) _CreateOperation_date(ctx context.Context, field graphql.CollectedField, obj *operations.CreateOperation) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "CreateOperation", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.CreateOperation_date(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(time.Time) - return graphql.MarshalTime(res) - }) -} - -func (ec *executionContext) _CreateOperation_title(ctx context.Context, field graphql.CollectedField, obj *operations.CreateOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CreateOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Title - return graphql.MarshalString(res) -} - -func (ec *executionContext) _CreateOperation_message(ctx context.Context, field graphql.CollectedField, obj *operations.CreateOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "CreateOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Message - return graphql.MarshalString(res) -} - -var labelChangeOperationImplementors = []string{"LabelChangeOperation", "Operation", "Authored"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _LabelChangeOperation(ctx context.Context, sel []query.Selection, obj *operations.LabelChangeOperation) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, labelChangeOperationImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LabelChangeOperation") - case "author": - out.Values[i] = ec._LabelChangeOperation_author(ctx, field, obj) - case "date": - out.Values[i] = ec._LabelChangeOperation_date(ctx, field, obj) - case "added": - out.Values[i] = ec._LabelChangeOperation_added(ctx, field, obj) - case "removed": - out.Values[i] = ec._LabelChangeOperation_removed(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _LabelChangeOperation_author(ctx context.Context, field graphql.CollectedField, obj *operations.LabelChangeOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "LabelChangeOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Author - return ec._Person(ctx, field.Selections, &res) -} - -func (ec *executionContext) _LabelChangeOperation_date(ctx context.Context, field graphql.CollectedField, obj *operations.LabelChangeOperation) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "LabelChangeOperation", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.LabelChangeOperation_date(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(time.Time) - return graphql.MarshalTime(res) - }) -} - -func (ec *executionContext) _LabelChangeOperation_added(ctx context.Context, field graphql.CollectedField, obj *operations.LabelChangeOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "LabelChangeOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Added - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return res[idx1] - }()) - } - return arr1 -} - -func (ec *executionContext) _LabelChangeOperation_removed(ctx context.Context, field graphql.CollectedField, obj *operations.LabelChangeOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "LabelChangeOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Removed - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return res[idx1] - }()) - } - return arr1 -} - -var operationConnectionImplementors = []string{"OperationConnection"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _OperationConnection(ctx context.Context, sel []query.Selection, obj *OperationConnection) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, operationConnectionImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OperationConnection") - case "edges": - out.Values[i] = ec._OperationConnection_edges(ctx, field, obj) - case "pageInfo": - out.Values[i] = ec._OperationConnection_pageInfo(ctx, field, obj) - case "totalCount": - out.Values[i] = ec._OperationConnection_totalCount(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _OperationConnection_edges(ctx context.Context, field graphql.CollectedField, obj *OperationConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "OperationConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Edges - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec._OperationEdge(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) _OperationConnection_pageInfo(ctx context.Context, field graphql.CollectedField, obj *OperationConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "OperationConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.PageInfo - return ec._PageInfo(ctx, field.Selections, &res) -} - -func (ec *executionContext) _OperationConnection_totalCount(ctx context.Context, field graphql.CollectedField, obj *OperationConnection) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "OperationConnection" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.TotalCount - return graphql.MarshalInt(res) -} - -var operationEdgeImplementors = []string{"OperationEdge"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _OperationEdge(ctx context.Context, sel []query.Selection, obj *OperationEdge) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, operationEdgeImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("OperationEdge") - case "cursor": - out.Values[i] = ec._OperationEdge_cursor(ctx, field, obj) - case "node": - out.Values[i] = ec._OperationEdge_node(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _OperationEdge_cursor(ctx context.Context, field graphql.CollectedField, obj *OperationEdge) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "OperationEdge" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Cursor - return graphql.MarshalString(res) -} - -func (ec *executionContext) _OperationEdge_node(ctx context.Context, field graphql.CollectedField, obj *OperationEdge) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "OperationEdge" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Node - return ec._OperationUnion(ctx, field.Selections, &res) -} - -var pageInfoImplementors = []string{"PageInfo"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _PageInfo(ctx context.Context, sel []query.Selection, obj *PageInfo) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, pageInfoImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("PageInfo") - case "hasNextPage": - out.Values[i] = ec._PageInfo_hasNextPage(ctx, field, obj) - case "hasPreviousPage": - out.Values[i] = ec._PageInfo_hasPreviousPage(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *PageInfo) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "PageInfo" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.HasNextPage - return graphql.MarshalBoolean(res) -} - -func (ec *executionContext) _PageInfo_hasPreviousPage(ctx context.Context, field graphql.CollectedField, obj *PageInfo) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "PageInfo" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.HasPreviousPage - return graphql.MarshalBoolean(res) -} - -var personImplementors = []string{"Person"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _Person(ctx context.Context, sel []query.Selection, obj *bug.Person) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, personImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Person") - case "email": - out.Values[i] = ec._Person_email(ctx, field, obj) - case "name": - out.Values[i] = ec._Person_name(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _Person_email(ctx context.Context, field graphql.CollectedField, obj *bug.Person) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Person" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Email - return graphql.MarshalString(res) -} - -func (ec *executionContext) _Person_name(ctx context.Context, field graphql.CollectedField, obj *bug.Person) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Person" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Name - return graphql.MarshalString(res) -} - -var queryImplementors = []string{"Query"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _Query(ctx context.Context, sel []query.Selection) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, queryImplementors, ec.Variables) - - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Query", - }) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Query") - case "defaultRepository": - out.Values[i] = ec._Query_defaultRepository(ctx, field) - case "repository": - out.Values[i] = ec._Query_repository(ctx, field) - case "__schema": - out.Values[i] = ec._Query___schema(ctx, field) - case "__type": - out.Values[i] = ec._Query___type(ctx, field) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _Query_defaultRepository(ctx context.Context, field graphql.CollectedField) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Query", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Query_defaultRepository(ctx) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*repoResolver) - if res == nil { - return graphql.Null - } - return ec._Repository(ctx, field.Selections, res) - }) -} - -func (ec *executionContext) _Query_repository(ctx context.Context, field graphql.CollectedField) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 string - if tmp, ok := field.Args["id"]; ok { - var err error - arg0, err = graphql.UnmarshalString(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["id"] = arg0 - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Query", - Args: args, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Query_repository(ctx, args["id"].(string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*repoResolver) - if res == nil { - return graphql.Null - } - return ec._Repository(ctx, field.Selections, res) - }) -} - -func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Query" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := ec.introspectSchema() - if res == nil { - return graphql.Null - } - return ec.___Schema(ctx, field.Selections, res) -} - -func (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 string - if tmp, ok := field.Args["name"]; ok { - var err error - arg0, err = graphql.UnmarshalString(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["name"] = arg0 - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "Query" - rctx.Args = args - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) - if res == nil { - return graphql.Null - } - return ec.___Type(ctx, field.Selections, res) -} - -var repositoryImplementors = []string{"Repository"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _Repository(ctx context.Context, sel []query.Selection, obj *repoResolver) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, repositoryImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("Repository") - case "allBugs": - out.Values[i] = ec._Repository_allBugs(ctx, field, obj) - case "bug": - out.Values[i] = ec._Repository_bug(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _Repository_allBugs(ctx context.Context, field graphql.CollectedField, obj *repoResolver) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 ConnectionInput - if tmp, ok := field.Args["input"]; ok { - var err error - arg0, err = UnmarshalConnectionInput(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["input"] = arg0 - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Repository", - Args: args, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Repository_allBugs(ctx, obj, args["input"].(ConnectionInput)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(BugConnection) - return ec._BugConnection(ctx, field.Selections, &res) - }) -} - -func (ec *executionContext) _Repository_bug(ctx context.Context, field graphql.CollectedField, obj *repoResolver) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 string - if tmp, ok := field.Args["prefix"]; ok { - var err error - arg0, err = graphql.UnmarshalString(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["prefix"] = arg0 - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "Repository", - Args: args, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.Repository_bug(ctx, obj, args["prefix"].(string)) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(*bug.Snapshot) - if res == nil { - return graphql.Null - } - return ec._Bug(ctx, field.Selections, res) - }) -} - -var setStatusOperationImplementors = []string{"SetStatusOperation", "Operation", "Authored"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _SetStatusOperation(ctx context.Context, sel []query.Selection, obj *operations.SetStatusOperation) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, setStatusOperationImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("SetStatusOperation") - case "author": - out.Values[i] = ec._SetStatusOperation_author(ctx, field, obj) - case "date": - out.Values[i] = ec._SetStatusOperation_date(ctx, field, obj) - case "status": - out.Values[i] = ec._SetStatusOperation_status(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _SetStatusOperation_author(ctx context.Context, field graphql.CollectedField, obj *operations.SetStatusOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "SetStatusOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Author - return ec._Person(ctx, field.Selections, &res) -} - -func (ec *executionContext) _SetStatusOperation_date(ctx context.Context, field graphql.CollectedField, obj *operations.SetStatusOperation) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "SetStatusOperation", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.SetStatusOperation_date(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(time.Time) - return graphql.MarshalTime(res) - }) -} - -func (ec *executionContext) _SetStatusOperation_status(ctx context.Context, field graphql.CollectedField, obj *operations.SetStatusOperation) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "SetStatusOperation", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.SetStatusOperation_status(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(Status) - return res - }) -} - -var setTitleOperationImplementors = []string{"SetTitleOperation", "Operation", "Authored"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) _SetTitleOperation(ctx context.Context, sel []query.Selection, obj *operations.SetTitleOperation) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, setTitleOperationImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("SetTitleOperation") - case "author": - out.Values[i] = ec._SetTitleOperation_author(ctx, field, obj) - case "date": - out.Values[i] = ec._SetTitleOperation_date(ctx, field, obj) - case "title": - out.Values[i] = ec._SetTitleOperation_title(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) _SetTitleOperation_author(ctx context.Context, field graphql.CollectedField, obj *operations.SetTitleOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "SetTitleOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Author - return ec._Person(ctx, field.Selections, &res) -} - -func (ec *executionContext) _SetTitleOperation_date(ctx context.Context, field graphql.CollectedField, obj *operations.SetTitleOperation) graphql.Marshaler { - ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ - Object: "SetTitleOperation", - Args: nil, - Field: field, - }) - return graphql.Defer(func() (ret graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - userErr := ec.Recover(ctx, r) - ec.Error(ctx, userErr) - ret = graphql.Null - } - }() - - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { - return ec.resolvers.SetTitleOperation_date(ctx, obj) - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.(time.Time) - return graphql.MarshalTime(res) - }) -} - -func (ec *executionContext) _SetTitleOperation_title(ctx context.Context, field graphql.CollectedField, obj *operations.SetTitleOperation) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "SetTitleOperation" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Title - return graphql.MarshalString(res) -} - -var __DirectiveImplementors = []string{"__Directive"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) ___Directive(ctx context.Context, sel []query.Selection, obj *introspection.Directive) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, __DirectiveImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Directive") - case "name": - out.Values[i] = ec.___Directive_name(ctx, field, obj) - case "description": - out.Values[i] = ec.___Directive_description(ctx, field, obj) - case "locations": - out.Values[i] = ec.___Directive_locations(ctx, field, obj) - case "args": - out.Values[i] = ec.___Directive_args(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Directive" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Name() - return graphql.MarshalString(res) -} - -func (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Directive" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Description() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -func (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Directive" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Locations() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return graphql.MarshalString(res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Directive" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Args() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___InputValue(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -var __EnumValueImplementors = []string{"__EnumValue"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) ___EnumValue(ctx context.Context, sel []query.Selection, obj *introspection.EnumValue) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, __EnumValueImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__EnumValue") - case "name": - out.Values[i] = ec.___EnumValue_name(ctx, field, obj) - case "description": - out.Values[i] = ec.___EnumValue_description(ctx, field, obj) - case "isDeprecated": - out.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj) - case "deprecationReason": - out.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__EnumValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Name() - return graphql.MarshalString(res) -} - -func (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__EnumValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Description() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__EnumValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.IsDeprecated() - return graphql.MarshalBoolean(res) -} - -func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__EnumValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.DeprecationReason() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -var __FieldImplementors = []string{"__Field"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) ___Field(ctx context.Context, sel []query.Selection, obj *introspection.Field) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, __FieldImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Field") - case "name": - out.Values[i] = ec.___Field_name(ctx, field, obj) - case "description": - out.Values[i] = ec.___Field_description(ctx, field, obj) - case "args": - out.Values[i] = ec.___Field_args(ctx, field, obj) - case "type": - out.Values[i] = ec.___Field_type(ctx, field, obj) - case "isDeprecated": - out.Values[i] = ec.___Field_isDeprecated(ctx, field, obj) - case "deprecationReason": - out.Values[i] = ec.___Field_deprecationReason(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Field" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Name() - return graphql.MarshalString(res) -} - -func (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Field" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Description() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Field" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Args() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___InputValue(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Field" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Type() - return ec.___Type(ctx, field.Selections, &res) -} - -func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Field" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.IsDeprecated() - return graphql.MarshalBoolean(res) -} - -func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Field" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.DeprecationReason() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -var __InputValueImplementors = []string{"__InputValue"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) ___InputValue(ctx context.Context, sel []query.Selection, obj *introspection.InputValue) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, __InputValueImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__InputValue") - case "name": - out.Values[i] = ec.___InputValue_name(ctx, field, obj) - case "description": - out.Values[i] = ec.___InputValue_description(ctx, field, obj) - case "type": - out.Values[i] = ec.___InputValue_type(ctx, field, obj) - case "defaultValue": - out.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__InputValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Name() - return graphql.MarshalString(res) -} - -func (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__InputValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Description() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__InputValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Type() - return ec.___Type(ctx, field.Selections, &res) -} - -func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__InputValue" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.DefaultValue() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -var __SchemaImplementors = []string{"__Schema"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) ___Schema(ctx context.Context, sel []query.Selection, obj *introspection.Schema) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, __SchemaImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Schema") - case "types": - out.Values[i] = ec.___Schema_types(ctx, field, obj) - case "queryType": - out.Values[i] = ec.___Schema_queryType(ctx, field, obj) - case "mutationType": - out.Values[i] = ec.___Schema_mutationType(ctx, field, obj) - case "subscriptionType": - out.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj) - case "directives": - out.Values[i] = ec.___Schema_directives(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Schema" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Types() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___Type(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Schema" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.QueryType() - return ec.___Type(ctx, field.Selections, &res) -} - -func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Schema" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.MutationType() - if res == nil { - return graphql.Null - } - return ec.___Type(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Schema" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.SubscriptionType() - if res == nil { - return graphql.Null - } - return ec.___Type(ctx, field.Selections, res) -} - -func (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Schema" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Directives() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___Directive(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -var __TypeImplementors = []string{"__Type"} - -// nolint: gocyclo, errcheck, gas, goconst -func (ec *executionContext) ___Type(ctx context.Context, sel []query.Selection, obj *introspection.Type) graphql.Marshaler { - fields := graphql.CollectFields(ec.Doc, sel, __TypeImplementors, ec.Variables) - - out := graphql.NewOrderedMap(len(fields)) - for i, field := range fields { - out.Keys[i] = field.Alias - - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("__Type") - case "kind": - out.Values[i] = ec.___Type_kind(ctx, field, obj) - case "name": - out.Values[i] = ec.___Type_name(ctx, field, obj) - case "description": - out.Values[i] = ec.___Type_description(ctx, field, obj) - case "fields": - out.Values[i] = ec.___Type_fields(ctx, field, obj) - case "interfaces": - out.Values[i] = ec.___Type_interfaces(ctx, field, obj) - case "possibleTypes": - out.Values[i] = ec.___Type_possibleTypes(ctx, field, obj) - case "enumValues": - out.Values[i] = ec.___Type_enumValues(ctx, field, obj) - case "inputFields": - out.Values[i] = ec.___Type_inputFields(ctx, field, obj) - case "ofType": - out.Values[i] = ec.___Type_ofType(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - - return out -} - -func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Kind() - return graphql.MarshalString(res) -} - -func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Name() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -func (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Description() - if res == nil { - return graphql.Null - } - return graphql.MarshalString(*res) -} - -func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 bool - if tmp, ok := field.Args["includeDeprecated"]; ok { - var err error - arg0, err = graphql.UnmarshalBoolean(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["includeDeprecated"] = arg0 - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = args - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___Field(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.Interfaces() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___Type(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.PossibleTypes() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___Type(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - args := map[string]interface{}{} - var arg0 bool - if tmp, ok := field.Args["includeDeprecated"]; ok { - var err error - arg0, err = graphql.UnmarshalBoolean(tmp) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - } - args["includeDeprecated"] = arg0 - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = args - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___EnumValue(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.InputFields() - arr1 := graphql.Array{} - for idx1 := range res { - arr1 = append(arr1, func() graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.PushIndex(idx1) - defer rctx.Pop() - return ec.___InputValue(ctx, field.Selections, &res[idx1]) - }()) - } - return arr1 -} - -func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) graphql.Marshaler { - rctx := graphql.GetResolverContext(ctx) - rctx.Object = "__Type" - rctx.Args = nil - rctx.Field = field - rctx.PushField(field.Alias) - defer rctx.Pop() - res := obj.OfType() - if res == nil { - return graphql.Null - } - return ec.___Type(ctx, field.Selections, res) -} - -func (ec *executionContext) _Authored(ctx context.Context, sel []query.Selection, obj *Authored) graphql.Marshaler { - switch obj := (*obj).(type) { - case nil: - return graphql.Null - case bug.Comment: - return ec._Comment(ctx, sel, &obj) - case *bug.Comment: - return ec._Comment(ctx, sel, obj) - case operations.CreateOperation: - return ec._CreateOperation(ctx, sel, &obj) - case *operations.CreateOperation: - return ec._CreateOperation(ctx, sel, obj) - case operations.SetTitleOperation: - return ec._SetTitleOperation(ctx, sel, &obj) - case *operations.SetTitleOperation: - return ec._SetTitleOperation(ctx, sel, obj) - case operations.AddCommentOperation: - return ec._AddCommentOperation(ctx, sel, &obj) - case *operations.AddCommentOperation: - return ec._AddCommentOperation(ctx, sel, obj) - case operations.SetStatusOperation: - return ec._SetStatusOperation(ctx, sel, &obj) - case *operations.SetStatusOperation: - return ec._SetStatusOperation(ctx, sel, obj) - case operations.LabelChangeOperation: - return ec._LabelChangeOperation(ctx, sel, &obj) - case *operations.LabelChangeOperation: - return ec._LabelChangeOperation(ctx, sel, obj) - default: - panic(fmt.Errorf("unexpected type %T", obj)) - } -} - -func (ec *executionContext) _Operation(ctx context.Context, sel []query.Selection, obj *Operation) graphql.Marshaler { - switch obj := (*obj).(type) { - case nil: - return graphql.Null - case operations.CreateOperation: - return ec._CreateOperation(ctx, sel, &obj) - case *operations.CreateOperation: - return ec._CreateOperation(ctx, sel, obj) - case operations.SetTitleOperation: - return ec._SetTitleOperation(ctx, sel, &obj) - case *operations.SetTitleOperation: - return ec._SetTitleOperation(ctx, sel, obj) - case operations.AddCommentOperation: - return ec._AddCommentOperation(ctx, sel, &obj) - case *operations.AddCommentOperation: - return ec._AddCommentOperation(ctx, sel, obj) - case operations.SetStatusOperation: - return ec._SetStatusOperation(ctx, sel, &obj) - case *operations.SetStatusOperation: - return ec._SetStatusOperation(ctx, sel, obj) - case operations.LabelChangeOperation: - return ec._LabelChangeOperation(ctx, sel, &obj) - case *operations.LabelChangeOperation: - return ec._LabelChangeOperation(ctx, sel, obj) - default: - panic(fmt.Errorf("unexpected type %T", obj)) - } -} - -func (ec *executionContext) _OperationUnion(ctx context.Context, sel []query.Selection, obj *OperationUnion) graphql.Marshaler { - switch obj := (*obj).(type) { - case nil: - return graphql.Null - case operations.CreateOperation: - return ec._CreateOperation(ctx, sel, &obj) - case *operations.CreateOperation: - return ec._CreateOperation(ctx, sel, obj) - case operations.SetTitleOperation: - return ec._SetTitleOperation(ctx, sel, &obj) - case *operations.SetTitleOperation: - return ec._SetTitleOperation(ctx, sel, obj) - case operations.AddCommentOperation: - return ec._AddCommentOperation(ctx, sel, &obj) - case *operations.AddCommentOperation: - return ec._AddCommentOperation(ctx, sel, obj) - case operations.SetStatusOperation: - return ec._SetStatusOperation(ctx, sel, &obj) - case *operations.SetStatusOperation: - return ec._SetStatusOperation(ctx, sel, obj) - case operations.LabelChangeOperation: - return ec._LabelChangeOperation(ctx, sel, &obj) - case *operations.LabelChangeOperation: - return ec._LabelChangeOperation(ctx, sel, obj) - default: - panic(fmt.Errorf("unexpected type %T", obj)) - } -} - -func UnmarshalConnectionInput(v interface{}) (ConnectionInput, error) { - var it ConnectionInput - var asMap = v.(map[string]interface{}) - - for k, v := range asMap { - switch k { - case "after": - var err error - var ptr1 string - if v != nil { - ptr1, err = graphql.UnmarshalString(v) - it.After = &ptr1 - } - - if err != nil { - return it, err - } - case "before": - var err error - var ptr1 string - if v != nil { - ptr1, err = graphql.UnmarshalString(v) - it.Before = &ptr1 - } - - if err != nil { - return it, err - } - case "first": - var err error - var ptr1 int - if v != nil { - ptr1, err = graphql.UnmarshalInt(v) - it.First = &ptr1 - } - - if err != nil { - return it, err - } - case "last": - var err error - var ptr1 int - if v != nil { - ptr1, err = graphql.UnmarshalInt(v) - it.Last = &ptr1 - } - - if err != nil { - return it, err - } - } - } - - return it, nil -} - -func (ec *executionContext) introspectSchema() *introspection.Schema { - return introspection.WrapSchema(parsedSchema) -} - -func (ec *executionContext) introspectType(name string) *introspection.Type { - t := parsedSchema.Resolve(name) - if t == nil { - return nil - } - return introspection.WrapType(t) -} - -var parsedSchema = schema.MustParse(`scalar Time -scalar Label - -# Information about pagination in a connection. -type PageInfo { - # When paginating forwards, are there more items? - hasNextPage: Boolean! - - # When paginating backwards, are there more items? - hasPreviousPage: Boolean! - - # When paginating backwards, the cursor to continue. -# startCursor: String - - # When paginating forwards, the cursor to continue. -# endCursor: String -} - -input ConnectionInput { - # Returns the elements in the list that come after the specified cursor. - after: String - - # Returns the elements in the list that come before the specified cursor. - before: String - - # Returns the first _n_ elements from the list. - first: Int - - # Returns the last _n_ elements from the list. - last: Int -} - -# Represents an person in a git object. -type Person { - # The email of the person. - email: String - - # The name of the person. - name: String -} - - -type CommentConnection { - edges: [CommentEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type CommentEdge { - cursor: String! - node: Comment! -} - -# Represents a comment on a bug. -type Comment implements Authored { - # The author of this comment. - author: Person! - - # The message of this comment. - message: String! -} - -enum Status { - OPEN - CLOSED -} - -# An object that has an author. -interface Authored { - # The author of this object. - author: Person! -} - -type OperationConnection { - edges: [OperationEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type OperationEdge { - cursor: String! - node: OperationUnion! -} - -# An operation applied to a bug. -interface Operation { - # The operations author. - author: Person! - - # The datetime when this operation was issued. - date: Time! -} - -type CreateOperation implements Operation, Authored { - author: Person! - date: Time! - - title: String! - message: String! -} - -type SetTitleOperation implements Operation, Authored { - author: Person! - date: Time! - - title: String! -} - -type AddCommentOperation implements Operation, Authored { - author: Person! - date: Time! - - message: String! -} - -type SetStatusOperation implements Operation, Authored { - author: Person! - date: Time! - - status: Status! -} - -type LabelChangeOperation implements Operation, Authored { - author: Person! - date: Time! - - added: [Label!]! - removed: [Label!]! -} - -union OperationUnion = - CreateOperation - | SetTitleOperation - | AddCommentOperation - | SetStatusOperation - | LabelChangeOperation - -# The connection type for Bug. -type BugConnection { - # A list of edges. - edges: [BugEdge]! - - # Information to aid in pagination. - pageInfo: PageInfo! - - # Identifies the total count of items in the connection. - totalCount: Int! -} - -# An edge in a connection. -type BugEdge { - # A cursor for use in pagination. - cursor: String! - - # The item at the end of the edge. - node: Bug! -} - -type Bug { - id: String! - humanId: String! - title: String! - status: Status! - - # A list of labels associated with the repository. - labels: [Label!]! - - comments(input: ConnectionInput!): CommentConnection! - - operations(input: ConnectionInput!): OperationConnection! -} - -type Repository { - allBugs(input: ConnectionInput!): BugConnection! - bug(prefix: String!): Bug -} - -type Query { - defaultRepository: Repository - repository(id: String!): Repository -} -`) diff --git a/graphql2/resolvers/generated_model.go b/graphql2/resolvers/generated_model.go deleted file mode 100644 index f6d78471..00000000 --- a/graphql2/resolvers/generated_model.go +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by github.com/vektah/gqlgen, DO NOT EDIT. - -package resolvers - -import ( - fmt "fmt" - io "io" - strconv "strconv" - - bug "github.com/MichaelMure/git-bug/bug" -) - -type Authored interface{} -type BugConnection struct { - Edges []*BugEdge `json:"edges"` - PageInfo PageInfo `json:"pageInfo"` - TotalCount int `json:"totalCount"` -} -type BugEdge struct { - Cursor string `json:"cursor"` - Node bug.Snapshot `json:"node"` -} -type CommentConnection struct { - Edges []CommentEdge `json:"edges"` - PageInfo PageInfo `json:"pageInfo"` - TotalCount int `json:"totalCount"` -} -type CommentEdge struct { - Cursor string `json:"cursor"` - Node bug.Comment `json:"node"` -} -type ConnectionInput struct { - After *string `json:"after"` - Before *string `json:"before"` - First *int `json:"first"` - Last *int `json:"last"` -} -type Operation interface{} -type OperationConnection struct { - Edges []OperationEdge `json:"edges"` - PageInfo PageInfo `json:"pageInfo"` - TotalCount int `json:"totalCount"` -} -type OperationEdge struct { - Cursor string `json:"cursor"` - Node OperationUnion `json:"node"` -} -type OperationUnion interface{} -type PageInfo struct { - HasNextPage bool `json:"hasNextPage"` - HasPreviousPage bool `json:"hasPreviousPage"` -} - -type Status string - -const ( - StatusOpen Status = "OPEN" - StatusClosed Status = "CLOSED" -) - -func (e Status) IsValid() bool { - switch e { - case StatusOpen, StatusClosed: - return true - } - return false -} - -func (e Status) String() string { - return string(e) -} - -func (e *Status) UnmarshalGQL(v interface{}) error { - str, ok := v.(string) - if !ok { - return fmt.Errorf("enums must be strings") - } - - *e = Status(str) - if !e.IsValid() { - return fmt.Errorf("%s is not a valid Status", str) - } - return nil -} - -func (e Status) MarshalGQL(w io.Writer) { - fmt.Fprint(w, strconv.Quote(e.String())) -} diff --git a/graphql2/resolvers/operations.go b/graphql2/resolvers/operations.go deleted file mode 100644 index 1279a1b4..00000000 --- a/graphql2/resolvers/operations.go +++ /dev/null @@ -1,54 +0,0 @@ -package resolvers - -import ( - "context" - "fmt" - "github.com/MichaelMure/git-bug/bug" - "github.com/MichaelMure/git-bug/bug/operations" - "time" -) - -type addCommentOperationResolver struct{} - -func (addCommentOperationResolver) Date(ctx context.Context, obj *operations.AddCommentOperation) (time.Time, error) { - return obj.Time(), nil -} - -type createOperationResolver struct{} - -func (createOperationResolver) Date(ctx context.Context, obj *operations.CreateOperation) (time.Time, error) { - return obj.Time(), nil -} - -type labelChangeOperation struct{} - -func (labelChangeOperation) Date(ctx context.Context, obj *operations.LabelChangeOperation) (time.Time, error) { - return obj.Time(), nil -} - -type setStatusOperationResolver struct{} - -func (setStatusOperationResolver) Date(ctx context.Context, obj *operations.SetStatusOperation) (time.Time, error) { - return obj.Time(), nil -} - -func (setStatusOperationResolver) Status(ctx context.Context, obj *operations.SetStatusOperation) (Status, error) { - return convertStatus(obj.Status) -} - -type setTitleOperationResolver struct{} - -func (setTitleOperationResolver) Date(ctx context.Context, obj *operations.SetTitleOperation) (time.Time, error) { - return obj.Time(), nil -} - -func convertStatus(status bug.Status) (Status, error) { - switch status { - case bug.OpenStatus: - return StatusOpen, nil - case bug.ClosedStatus: - return StatusClosed, nil - } - - return "", fmt.Errorf("Unknown status") -} diff --git a/graphql2/resolvers/pager_bug.go b/graphql2/resolvers/pager_bug.go deleted file mode 100644 index 55acfcc4..00000000 --- a/graphql2/resolvers/pager_bug.go +++ /dev/null @@ -1,225 +0,0 @@ -// This file was automatically generated by genny. -// Any changes will be lost if this file is regenerated. -// see https://github.com/cheekybits/genny - -package resolvers - -import ( - "fmt" - - "github.com/MichaelMure/git-bug/bug" -) - -type BugSnapshotEdger func(value bug.Snapshot, offset int) Edge - -func BugSnapshotPaginate(source []bug.Snapshot, edger BugSnapshotEdger, input ConnectionInput) ([]BugEdge, PageInfo, error) { - var result []BugEdge - var pageInfo PageInfo - - offset := 0 - - if input.After != nil { - for i, value := range source { - edge := edger(value, i) - if edge.GetCursor() == *input.After { - // remove all previous element including the "after" one - source = source[i+1:] - offset = i + 1 - break - } - } - } - - if input.Before != nil { - for i, value := range source { - edge := edger(value, i+offset) - - if edge.GetCursor() == *input.Before { - // remove all after element including the "before" one - break - } - - result = append(result, edge.(BugEdge)) - } - } else { - result = make([]BugEdge, len(source)) - - for i, value := range source { - result[i] = edger(value, i+offset).(BugEdge) - } - } - - if input.First != nil { - if *input.First < 0 { - return nil, PageInfo{}, fmt.Errorf("first less than zero") - } - - if len(result) > *input.First { - // Slice result to be of length first by removing edges from the end - result = result[:*input.First] - pageInfo.HasNextPage = true - } - } - - if input.Last != nil { - if *input.Last < 0 { - return nil, PageInfo{}, fmt.Errorf("last less than zero") - } - - if len(result) > *input.Last { - // Slice result to be of length last by removing edges from the start - result = result[len(result)-*input.Last:] - pageInfo.HasPreviousPage = true - } - } - - return result, pageInfo, nil -} - -// Apply the before/after cursor params to the source and return an array of edges -//func ApplyCursorToEdges(source []interface{}, edger Edger, input ConnectionInput) []Edge { -// var result []Edge -// -// if input.After != nil { -// for i, value := range source { -// edge := edger(value) -// if edge.Cursor() == *input.After { -// // remove all previous element including the "after" one -// source = source[i+1:] -// break -// } -// } -// } -// -// if input.Before != nil { -// for _, value := range source { -// edge := edger(value) -// -// if edge.Cursor() == *input.Before { -// // remove all after element including the "before" one -// break -// } -// -// result = append(result, edge) -// } -// } else { -// result = make([]Edge, len(source)) -// -// for i, value := range source { -// result[i] = edger(value) -// } -// } -// -// return result -//} - -// Apply the first/last cursor params to the edges -//func EdgesToReturn(edges []Edge, input ConnectionInput) ([]Edge, PageInfo, error) { -// hasPreviousPage := false -// hasNextPage := false -// -// if input.First != nil { -// if *input.First < 0 { -// return nil, nil, fmt.Errorf("first less than zero") -// } -// -// if len(edges) > *input.First { -// // Slice result to be of length first by removing edges from the end -// edges = edges[:*input.First] -// hasNextPage = true -// } -// } -// -// if input.Last != nil { -// if *input.Last < 0 { -// return nil, nil, fmt.Errorf("last less than zero") -// } -// -// if len(edges) > *input.Last { -// // Slice result to be of length last by removing edges from the start -// edges = edges[len(edges)-*input.Last:] -// hasPreviousPage = true -// } -// } -// -// pageInfo := PageInfo{ -// HasNextPage: hasNextPage, -// HasPreviousPage: hasPreviousPage, -// } -// -// return edges, pageInfo, nil -//} - -//func EdgesToReturn(allEdges []Edge, before *cursor, after *cursor, first *int, last *int) ([]Edge, error) { -// result := ApplyCursorToEdges(allEdges, before, after) -// -// if first != nil { -// if *first < 0 { -// return nil, fmt.Errorf("first less than zero") -// } -// -// if len(result) > *first { -// // Slice result to be of length first by removing edges from the end -// result = result[:*first] -// } -// } -// -// if last != nil { -// if *last < 0 { -// return nil, fmt.Errorf("last less than zero") -// } -// -// if len(result) > *last { -// // Slice result to be of length last by removing edges from the start -// result = result[len(result)-*last:] -// } -// } -// -// return result, nil -//} - -//func ApplyCursorToEdges(allEdges []Edge, before *cursor, after *cursor) []Edge { -// result := allEdges -// -// if after != nil { -// for i, edge := range result { -// if edge.Cursor() == *after { -// // remove all previous element including the "after" one -// result = result[i+1:] -// break -// } -// } -// } -// -// if before != nil { -// for i, edge := range result { -// if edge.Cursor() == *before { -// // remove all after element including the "before" one -// result = result[:i] -// } -// } -// } -// -// return result -//} - -//func HasPreviousPage(allEdges []Edge, before *cursor, after *cursor, last *int) bool { -// if last != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *last -// } -// -// // TODO: handle "after", but according to the spec it's ok to return false -// -// return false -//} -// -//func HasNextPage(allEdges []Edge, before *cursor, after *cursor, first *int) bool { -// if first != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *first -// } -// -// // TODO: handle "before", but according to the spec it's ok to return false -// -// return false diff --git a/graphql2/resolvers/pager_comment.go b/graphql2/resolvers/pager_comment.go deleted file mode 100644 index 3dd11757..00000000 --- a/graphql2/resolvers/pager_comment.go +++ /dev/null @@ -1,225 +0,0 @@ -// This file was automatically generated by genny. -// Any changes will be lost if this file is regenerated. -// see https://github.com/cheekybits/genny - -package resolvers - -import ( - "fmt" - - "github.com/MichaelMure/git-bug/bug" -) - -type BugCommentEdger func(value bug.Comment, offset int) Edge - -func BugCommentPaginate(source []bug.Comment, edger BugCommentEdger, input ConnectionInput) ([]CommentEdge, PageInfo, error) { - var result []CommentEdge - var pageInfo PageInfo - - offset := 0 - - if input.After != nil { - for i, value := range source { - edge := edger(value, i) - if edge.GetCursor() == *input.After { - // remove all previous element including the "after" one - source = source[i+1:] - offset = i + 1 - break - } - } - } - - if input.Before != nil { - for i, value := range source { - edge := edger(value, i+offset) - - if edge.GetCursor() == *input.Before { - // remove all after element including the "before" one - break - } - - result = append(result, edge.(CommentEdge)) - } - } else { - result = make([]CommentEdge, len(source)) - - for i, value := range source { - result[i] = edger(value, i+offset).(CommentEdge) - } - } - - if input.First != nil { - if *input.First < 0 { - return nil, PageInfo{}, fmt.Errorf("first less than zero") - } - - if len(result) > *input.First { - // Slice result to be of length first by removing edges from the end - result = result[:*input.First] - pageInfo.HasNextPage = true - } - } - - if input.Last != nil { - if *input.Last < 0 { - return nil, PageInfo{}, fmt.Errorf("last less than zero") - } - - if len(result) > *input.Last { - // Slice result to be of length last by removing edges from the start - result = result[len(result)-*input.Last:] - pageInfo.HasPreviousPage = true - } - } - - return result, pageInfo, nil -} - -// Apply the before/after cursor params to the source and return an array of edges -//func ApplyCursorToEdges(source []interface{}, edger Edger, input ConnectionInput) []Edge { -// var result []Edge -// -// if input.After != nil { -// for i, value := range source { -// edge := edger(value) -// if edge.Cursor() == *input.After { -// // remove all previous element including the "after" one -// source = source[i+1:] -// break -// } -// } -// } -// -// if input.Before != nil { -// for _, value := range source { -// edge := edger(value) -// -// if edge.Cursor() == *input.Before { -// // remove all after element including the "before" one -// break -// } -// -// result = append(result, edge) -// } -// } else { -// result = make([]Edge, len(source)) -// -// for i, value := range source { -// result[i] = edger(value) -// } -// } -// -// return result -//} - -// Apply the first/last cursor params to the edges -//func EdgesToReturn(edges []Edge, input ConnectionInput) ([]Edge, PageInfo, error) { -// hasPreviousPage := false -// hasNextPage := false -// -// if input.First != nil { -// if *input.First < 0 { -// return nil, nil, fmt.Errorf("first less than zero") -// } -// -// if len(edges) > *input.First { -// // Slice result to be of length first by removing edges from the end -// edges = edges[:*input.First] -// hasNextPage = true -// } -// } -// -// if input.Last != nil { -// if *input.Last < 0 { -// return nil, nil, fmt.Errorf("last less than zero") -// } -// -// if len(edges) > *input.Last { -// // Slice result to be of length last by removing edges from the start -// edges = edges[len(edges)-*input.Last:] -// hasPreviousPage = true -// } -// } -// -// pageInfo := PageInfo{ -// HasNextPage: hasNextPage, -// HasPreviousPage: hasPreviousPage, -// } -// -// return edges, pageInfo, nil -//} - -//func EdgesToReturn(allEdges []Edge, before *cursor, after *cursor, first *int, last *int) ([]Edge, error) { -// result := ApplyCursorToEdges(allEdges, before, after) -// -// if first != nil { -// if *first < 0 { -// return nil, fmt.Errorf("first less than zero") -// } -// -// if len(result) > *first { -// // Slice result to be of length first by removing edges from the end -// result = result[:*first] -// } -// } -// -// if last != nil { -// if *last < 0 { -// return nil, fmt.Errorf("last less than zero") -// } -// -// if len(result) > *last { -// // Slice result to be of length last by removing edges from the start -// result = result[len(result)-*last:] -// } -// } -// -// return result, nil -//} - -//func ApplyCursorToEdges(allEdges []Edge, before *cursor, after *cursor) []Edge { -// result := allEdges -// -// if after != nil { -// for i, edge := range result { -// if edge.Cursor() == *after { -// // remove all previous element including the "after" one -// result = result[i+1:] -// break -// } -// } -// } -// -// if before != nil { -// for i, edge := range result { -// if edge.Cursor() == *before { -// // remove all after element including the "before" one -// result = result[:i] -// } -// } -// } -// -// return result -//} - -//func HasPreviousPage(allEdges []Edge, before *cursor, after *cursor, last *int) bool { -// if last != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *last -// } -// -// // TODO: handle "after", but according to the spec it's ok to return false -// -// return false -//} -// -//func HasNextPage(allEdges []Edge, before *cursor, after *cursor, first *int) bool { -// if first != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *first -// } -// -// // TODO: handle "before", but according to the spec it's ok to return false -// -// return false diff --git a/graphql2/resolvers/pager_operation.go b/graphql2/resolvers/pager_operation.go deleted file mode 100644 index fe4eebc2..00000000 --- a/graphql2/resolvers/pager_operation.go +++ /dev/null @@ -1,225 +0,0 @@ -// This file was automatically generated by genny. -// Any changes will be lost if this file is regenerated. -// see https://github.com/cheekybits/genny - -package resolvers - -import ( - "fmt" - - "github.com/MichaelMure/git-bug/bug" -) - -type BugOperationEdger func(value bug.Operation, offset int) Edge - -func BugOperationPaginate(source []bug.Operation, edger BugOperationEdger, input ConnectionInput) ([]OperationEdge, PageInfo, error) { - var result []OperationEdge - var pageInfo PageInfo - - offset := 0 - - if input.After != nil { - for i, value := range source { - edge := edger(value, i) - if edge.GetCursor() == *input.After { - // remove all previous element including the "after" one - source = source[i+1:] - offset = i + 1 - break - } - } - } - - if input.Before != nil { - for i, value := range source { - edge := edger(value, i+offset) - - if edge.GetCursor() == *input.Before { - // remove all after element including the "before" one - break - } - - result = append(result, edge.(OperationEdge)) - } - } else { - result = make([]OperationEdge, len(source)) - - for i, value := range source { - result[i] = edger(value, i+offset).(OperationEdge) - } - } - - if input.First != nil { - if *input.First < 0 { - return nil, PageInfo{}, fmt.Errorf("first less than zero") - } - - if len(result) > *input.First { - // Slice result to be of length first by removing edges from the end - result = result[:*input.First] - pageInfo.HasNextPage = true - } - } - - if input.Last != nil { - if *input.Last < 0 { - return nil, PageInfo{}, fmt.Errorf("last less than zero") - } - - if len(result) > *input.Last { - // Slice result to be of length last by removing edges from the start - result = result[len(result)-*input.Last:] - pageInfo.HasPreviousPage = true - } - } - - return result, pageInfo, nil -} - -// Apply the before/after cursor params to the source and return an array of edges -//func ApplyCursorToEdges(source []interface{}, edger Edger, input ConnectionInput) []Edge { -// var result []Edge -// -// if input.After != nil { -// for i, value := range source { -// edge := edger(value) -// if edge.Cursor() == *input.After { -// // remove all previous element including the "after" one -// source = source[i+1:] -// break -// } -// } -// } -// -// if input.Before != nil { -// for _, value := range source { -// edge := edger(value) -// -// if edge.Cursor() == *input.Before { -// // remove all after element including the "before" one -// break -// } -// -// result = append(result, edge) -// } -// } else { -// result = make([]Edge, len(source)) -// -// for i, value := range source { -// result[i] = edger(value) -// } -// } -// -// return result -//} - -// Apply the first/last cursor params to the edges -//func EdgesToReturn(edges []Edge, input ConnectionInput) ([]Edge, PageInfo, error) { -// hasPreviousPage := false -// hasNextPage := false -// -// if input.First != nil { -// if *input.First < 0 { -// return nil, nil, fmt.Errorf("first less than zero") -// } -// -// if len(edges) > *input.First { -// // Slice result to be of length first by removing edges from the end -// edges = edges[:*input.First] -// hasNextPage = true -// } -// } -// -// if input.Last != nil { -// if *input.Last < 0 { -// return nil, nil, fmt.Errorf("last less than zero") -// } -// -// if len(edges) > *input.Last { -// // Slice result to be of length last by removing edges from the start -// edges = edges[len(edges)-*input.Last:] -// hasPreviousPage = true -// } -// } -// -// pageInfo := PageInfo{ -// HasNextPage: hasNextPage, -// HasPreviousPage: hasPreviousPage, -// } -// -// return edges, pageInfo, nil -//} - -//func EdgesToReturn(allEdges []Edge, before *cursor, after *cursor, first *int, last *int) ([]Edge, error) { -// result := ApplyCursorToEdges(allEdges, before, after) -// -// if first != nil { -// if *first < 0 { -// return nil, fmt.Errorf("first less than zero") -// } -// -// if len(result) > *first { -// // Slice result to be of length first by removing edges from the end -// result = result[:*first] -// } -// } -// -// if last != nil { -// if *last < 0 { -// return nil, fmt.Errorf("last less than zero") -// } -// -// if len(result) > *last { -// // Slice result to be of length last by removing edges from the start -// result = result[len(result)-*last:] -// } -// } -// -// return result, nil -//} - -//func ApplyCursorToEdges(allEdges []Edge, before *cursor, after *cursor) []Edge { -// result := allEdges -// -// if after != nil { -// for i, edge := range result { -// if edge.Cursor() == *after { -// // remove all previous element including the "after" one -// result = result[i+1:] -// break -// } -// } -// } -// -// if before != nil { -// for i, edge := range result { -// if edge.Cursor() == *before { -// // remove all after element including the "before" one -// result = result[:i] -// } -// } -// } -// -// return result -//} - -//func HasPreviousPage(allEdges []Edge, before *cursor, after *cursor, last *int) bool { -// if last != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *last -// } -// -// // TODO: handle "after", but according to the spec it's ok to return false -// -// return false -//} -// -//func HasNextPage(allEdges []Edge, before *cursor, after *cursor, first *int) bool { -// if first != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *first -// } -// -// // TODO: handle "before", but according to the spec it's ok to return false -// -// return false diff --git a/graphql2/resolvers/pagers.go b/graphql2/resolvers/pagers.go deleted file mode 100644 index 378dcdbf..00000000 --- a/graphql2/resolvers/pagers.go +++ /dev/null @@ -1,51 +0,0 @@ -//go:generate genny -in=pagers_template.go -out=pager_bug.go gen "NodeType=bug.Snapshot EdgeType=BugEdge" -//go:generate genny -in=pagers_template.go -out=pager_operation.go gen "NodeType=bug.Operation EdgeType=OperationEdge" -//go:generate genny -in=pagers_template.go -out=pager_comment.go gen "NodeType=bug.Comment EdgeType=CommentEdge" - -package resolvers - -import ( - "encoding/base64" - "fmt" - "strconv" - "strings" -) - -const cursorPrefix = "cursor:" - -type Edge interface { - GetCursor() string -} - -// Creates the cursor string from an offset -func offsetToCursor(offset int) string { - str := fmt.Sprintf("%v%v", cursorPrefix, offset) - return base64.StdEncoding.EncodeToString([]byte(str)) -} - -// Re-derives the offset from the cursor string. -func cursorToOffset(cursor string) (int, error) { - str := "" - b, err := base64.StdEncoding.DecodeString(cursor) - if err == nil { - str = string(b) - } - str = strings.Replace(str, cursorPrefix, "", -1) - offset, err := strconv.Atoi(str) - if err != nil { - return 0, fmt.Errorf("Invalid cursor") - } - return offset, nil -} - -func (e OperationEdge) GetCursor() string { - return e.Cursor -} - -func (e BugEdge) GetCursor() string { - return e.Cursor -} - -func (e CommentEdge) GetCursor() string { - return e.Cursor -} diff --git a/graphql2/resolvers/pagers_template.go b/graphql2/resolvers/pagers_template.go deleted file mode 100644 index 0ca7de75..00000000 --- a/graphql2/resolvers/pagers_template.go +++ /dev/null @@ -1,224 +0,0 @@ -package resolvers - -import ( - "fmt" - "github.com/cheekybits/genny/generic" -) - -type NodeType generic.Type -type EdgeType generic.Type - -type NodeTypeEdger func(value NodeType, offset int) Edge - -func NodeTypePaginate(source []NodeType, edger NodeTypeEdger, input ConnectionInput) ([]EdgeType, PageInfo, error) { - var result []EdgeType - var pageInfo PageInfo - - offset := 0 - - if input.After != nil { - for i, value := range source { - edge := edger(value, i) - if edge.GetCursor() == *input.After { - // remove all previous element including the "after" one - source = source[i+1:] - offset = i + 1 - break - } - } - } - - if input.Before != nil { - for i, value := range source { - edge := edger(value, i+offset) - - if edge.GetCursor() == *input.Before { - // remove all after element including the "before" one - break - } - - result = append(result, edge.(EdgeType)) - } - } else { - result = make([]EdgeType, len(source)) - - for i, value := range source { - result[i] = edger(value, i+offset).(EdgeType) - } - } - - if input.First != nil { - if *input.First < 0 { - return nil, PageInfo{}, fmt.Errorf("first less than zero") - } - - if len(result) > *input.First { - // Slice result to be of length first by removing edges from the end - result = result[:*input.First] - pageInfo.HasNextPage = true - } - } - - if input.Last != nil { - if *input.Last < 0 { - return nil, PageInfo{}, fmt.Errorf("last less than zero") - } - - if len(result) > *input.Last { - // Slice result to be of length last by removing edges from the start - result = result[len(result)-*input.Last:] - pageInfo.HasPreviousPage = true - } - } - - return result, pageInfo, nil -} - -// Apply the before/after cursor params to the source and return an array of edges -//func ApplyCursorToEdges(source []interface{}, edger Edger, input ConnectionInput) []Edge { -// var result []Edge -// -// if input.After != nil { -// for i, value := range source { -// edge := edger(value) -// if edge.Cursor() == *input.After { -// // remove all previous element including the "after" one -// source = source[i+1:] -// break -// } -// } -// } -// -// if input.Before != nil { -// for _, value := range source { -// edge := edger(value) -// -// if edge.Cursor() == *input.Before { -// // remove all after element including the "before" one -// break -// } -// -// result = append(result, edge) -// } -// } else { -// result = make([]Edge, len(source)) -// -// for i, value := range source { -// result[i] = edger(value) -// } -// } -// -// return result -//} - -// Apply the first/last cursor params to the edges -//func EdgesToReturn(edges []Edge, input ConnectionInput) ([]Edge, PageInfo, error) { -// hasPreviousPage := false -// hasNextPage := false -// -// if input.First != nil { -// if *input.First < 0 { -// return nil, nil, fmt.Errorf("first less than zero") -// } -// -// if len(edges) > *input.First { -// // Slice result to be of length first by removing edges from the end -// edges = edges[:*input.First] -// hasNextPage = true -// } -// } -// -// if input.Last != nil { -// if *input.Last < 0 { -// return nil, nil, fmt.Errorf("last less than zero") -// } -// -// if len(edges) > *input.Last { -// // Slice result to be of length last by removing edges from the start -// edges = edges[len(edges)-*input.Last:] -// hasPreviousPage = true -// } -// } -// -// pageInfo := PageInfo{ -// HasNextPage: hasNextPage, -// HasPreviousPage: hasPreviousPage, -// } -// -// return edges, pageInfo, nil -//} - -//func EdgesToReturn(allEdges []Edge, before *cursor, after *cursor, first *int, last *int) ([]Edge, error) { -// result := ApplyCursorToEdges(allEdges, before, after) -// -// if first != nil { -// if *first < 0 { -// return nil, fmt.Errorf("first less than zero") -// } -// -// if len(result) > *first { -// // Slice result to be of length first by removing edges from the end -// result = result[:*first] -// } -// } -// -// if last != nil { -// if *last < 0 { -// return nil, fmt.Errorf("last less than zero") -// } -// -// if len(result) > *last { -// // Slice result to be of length last by removing edges from the start -// result = result[len(result)-*last:] -// } -// } -// -// return result, nil -//} - -//func ApplyCursorToEdges(allEdges []Edge, before *cursor, after *cursor) []Edge { -// result := allEdges -// -// if after != nil { -// for i, edge := range result { -// if edge.Cursor() == *after { -// // remove all previous element including the "after" one -// result = result[i+1:] -// break -// } -// } -// } -// -// if before != nil { -// for i, edge := range result { -// if edge.Cursor() == *before { -// // remove all after element including the "before" one -// result = result[:i] -// } -// } -// } -// -// return result -//} - -//func HasPreviousPage(allEdges []Edge, before *cursor, after *cursor, last *int) bool { -// if last != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *last -// } -// -// // TODO: handle "after", but according to the spec it's ok to return false -// -// return false -//} -// -//func HasNextPage(allEdges []Edge, before *cursor, after *cursor, first *int) bool { -// if first != nil { -// edges := ApplyCursorToEdges(allEdges, before, after) -// return len(edges) > *first -// } -// -// // TODO: handle "before", but according to the spec it's ok to return false -// -// return false -//} diff --git a/graphql2/resolvers/query.go b/graphql2/resolvers/query.go deleted file mode 100644 index cceca334..00000000 --- a/graphql2/resolvers/query.go +++ /dev/null @@ -1,36 +0,0 @@ -package resolvers - -import ( - "context" - "github.com/MichaelMure/git-bug/cache" -) - -type rootQueryResolver struct { - cache cache.Cacher -} - -func (r rootQueryResolver) DefaultRepository(ctx context.Context) (*repoResolver, error) { - repo, err := r.cache.DefaultRepo() - - if err != nil { - return nil, err - } - - return &repoResolver{ - cache: r.cache, - repo: repo, - }, nil -} - -func (r rootQueryResolver) Repository(ctx context.Context, id string) (*repoResolver, error) { - repo, err := r.cache.ResolveRepo(id) - - if err != nil { - return nil, err - } - - return &repoResolver{ - cache: r.cache, - repo: repo, - }, nil -} diff --git a/graphql2/resolvers/repo.go b/graphql2/resolvers/repo.go deleted file mode 100644 index 14019b65..00000000 --- a/graphql2/resolvers/repo.go +++ /dev/null @@ -1,26 +0,0 @@ -package resolvers - -import ( - "context" - "github.com/MichaelMure/git-bug/bug" - "github.com/MichaelMure/git-bug/cache" -) - -type repoResolver struct { - cache cache.Cacher - repo cache.RepoCacher -} - -func (repoResolver) AllBugs(ctx context.Context, obj *repoResolver, input ConnectionInput) (BugConnection, error) { - panic("implement me") -} - -func (repoResolver) Bug(ctx context.Context, obj *repoResolver, prefix string) (*bug.Snapshot, error) { - b, err := obj.repo.ResolveBugPrefix(prefix) - - if err != nil { - return nil, err - } - - return b.Snapshot(), nil -} diff --git a/graphql2/resolvers/root.go b/graphql2/resolvers/root.go deleted file mode 100644 index e5f83060..00000000 --- a/graphql2/resolvers/root.go +++ /dev/null @@ -1,53 +0,0 @@ -package resolvers - -import ( - "github.com/MichaelMure/git-bug/cache" -) - -type RootResolver struct { - cache.RootCache -} - -func NewRootResolver() *RootResolver { - return &RootResolver{ - RootCache: cache.NewCache(), - } -} - -func (r RootResolver) Query() QueryResolver { - return &rootQueryResolver{ - cache: &r.RootCache, - } -} - -func (RootResolver) AddCommentOperation() AddCommentOperationResolver { - return &addCommentOperationResolver{} -} - -func (r RootResolver) Bug() BugResolver { - return &bugResolver{ - cache: &r.RootCache, - } -} - -func (RootResolver) CreateOperation() CreateOperationResolver { - return &createOperationResolver{} -} - -func (RootResolver) LabelChangeOperation() LabelChangeOperationResolver { - return &labelChangeOperation{} -} - -func (r RootResolver) Repository() RepositoryResolver { - return &repoResolver{ - cache: &r.RootCache, - } -} - -func (RootResolver) SetStatusOperation() SetStatusOperationResolver { - return &setStatusOperationResolver{} -} - -func (RootResolver) SetTitleOperation() SetTitleOperationResolver { - return &setTitleOperationResolver{} -} diff --git a/graphql2/schema.graphql b/graphql2/schema.graphql deleted file mode 100644 index 47716488..00000000 --- a/graphql2/schema.graphql +++ /dev/null @@ -1,181 +0,0 @@ -scalar Time -scalar Label - -# Information about pagination in a connection. -type PageInfo { - # When paginating forwards, are there more items? - hasNextPage: Boolean! - - # When paginating backwards, are there more items? - hasPreviousPage: Boolean! - - # When paginating backwards, the cursor to continue. -# startCursor: String - - # When paginating forwards, the cursor to continue. -# endCursor: String -} - -input ConnectionInput { - # Returns the elements in the list that come after the specified cursor. - after: String - - # Returns the elements in the list that come before the specified cursor. - before: String - - # Returns the first _n_ elements from the list. - first: Int - - # Returns the last _n_ elements from the list. - last: Int -} - -# Represents an person in a git object. -type Person { - # The email of the person. - email: String - - # The name of the person. - name: String -} - - -type CommentConnection { - edges: [CommentEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type CommentEdge { - cursor: String! - node: Comment! -} - -# Represents a comment on a bug. -type Comment implements Authored { - # The author of this comment. - author: Person! - - # The message of this comment. - message: String! -} - -enum Status { - OPEN - CLOSED -} - -# An object that has an author. -interface Authored { - # The author of this object. - author: Person! -} - -type OperationConnection { - edges: [OperationEdge!]! - pageInfo: PageInfo! - totalCount: Int! -} - -type OperationEdge { - cursor: String! - node: OperationUnion! -} - -# An operation applied to a bug. -interface Operation { - # The operations author. - author: Person! - - # The datetime when this operation was issued. - date: Time! -} - -type CreateOperation implements Operation, Authored { - author: Person! - date: Time! - - title: String! - message: String! -} - -type SetTitleOperation implements Operation, Authored { - author: Person! - date: Time! - - title: String! -} - -type AddCommentOperation implements Operation, Authored { - author: Person! - date: Time! - - message: String! -} - -type SetStatusOperation implements Operation, Authored { - author: Person! - date: Time! - - status: Status! -} - -type LabelChangeOperation implements Operation, Authored { - author: Person! - date: Time! - - added: [Label!]! - removed: [Label!]! -} - -union OperationUnion = - CreateOperation - | SetTitleOperation - | AddCommentOperation - | SetStatusOperation - | LabelChangeOperation - -# The connection type for Bug. -type BugConnection { - # A list of edges. - edges: [BugEdge]! - - # Information to aid in pagination. - pageInfo: PageInfo! - - # Identifies the total count of items in the connection. - totalCount: Int! -} - -# An edge in a connection. -type BugEdge { - # A cursor for use in pagination. - cursor: String! - - # The item at the end of the edge. - node: Bug! -} - -type Bug { - id: String! - humanId: String! - title: String! - status: Status! - - # A list of labels associated with the repository. - labels: [Label!]! - - comments(input: ConnectionInput!): CommentConnection! - - operations(input: ConnectionInput!): OperationConnection! -} - -type Repository { - allBugs(input: ConnectionInput!): BugConnection! - bug(prefix: String!): Bug -} - -type Query { - defaultRepository: Repository - repository(id: String!): Repository -} -- cgit