github.com/maeglindeveloper/gqlgen@v0.13.1-0.20210413081235-57808b12a0a0/example/scalars/resolvers.go (about) 1 //go:generate go run ../../testdata/gqlgen.go 2 3 package scalars 4 5 import ( 6 context "context" 7 "fmt" 8 time "time" 9 10 "github.com/99designs/gqlgen/example/scalars/external" 11 "github.com/99designs/gqlgen/example/scalars/model" 12 ) 13 14 type Resolver struct { 15 } 16 17 func (r *Resolver) Query() QueryResolver { 18 return &queryResolver{r} 19 } 20 21 func (r *Resolver) User() UserResolver { 22 return &userResolver{r} 23 } 24 25 type queryResolver struct{ *Resolver } 26 27 func (r *queryResolver) UserByTier(ctx context.Context, tier model.Tier, darkMode *model.Prefs) ([]*model.User, error) { 28 panic("implement me") 29 } 30 31 func (r *queryResolver) User(ctx context.Context, id external.ObjectID) (*model.User, error) { 32 return &model.User{ 33 ID: id, 34 Name: fmt.Sprintf("Test User %d", id), 35 Created: time.Now(), 36 Address: model.Address{ID: 1, Location: &model.Point{X: 1, Y: 2}}, 37 Tier: model.TierC, 38 }, nil 39 } 40 41 func (r *queryResolver) Search(ctx context.Context, input *model.SearchArgs) ([]*model.User, error) { 42 location := model.Point{X: 1, Y: 2} 43 if input.Location != nil { 44 location = *input.Location 45 } 46 47 created := time.Now() 48 if input.CreatedAfter != nil { 49 created = *input.CreatedAfter 50 } 51 52 return []*model.User{ 53 { 54 ID: 1, 55 Name: "Test User 1", 56 Created: created, 57 Address: model.Address{ID: 2, Location: &location}, 58 Tier: model.TierA, 59 }, 60 { 61 ID: 2, 62 Name: "Test User 2", 63 Created: created, 64 Address: model.Address{ID: 1, Location: &location}, 65 Tier: model.TierC, 66 }, 67 }, nil 68 } 69 70 type userResolver struct{ *Resolver } 71 72 func (r *userResolver) PrimitiveResolver(ctx context.Context, obj *model.User) (string, error) { 73 return "test", nil 74 } 75 76 func (r *userResolver) CustomResolver(ctx context.Context, obj *model.User) (*model.Point, error) { 77 return &model.Point{X: 5, Y: 1}, nil 78 }