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  }