Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewExecutableSchema ¶
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
Types ¶
type ComplexityRoot ¶
type ComplexityRoot struct {
AuthPayload struct {
Token func(childComplexity int) int
User func(childComplexity int) int
}
Mutation struct {
AddFakeUsers func(childComplexity int, count *int) int
FakeUserAuth func(childComplexity int, githubLogin string) int
GithubAuth func(childComplexity int, code string) int
PostPhoto func(childComplexity int, input model.PostPhotoInput) int
TagPhoto func(childComplexity int, githubLogin string, photoID string) int
}
Photo struct {
Category func(childComplexity int) int
Created func(childComplexity int) int
Description func(childComplexity int) int
ID func(childComplexity int) int
Name func(childComplexity int) int
PostedBy func(childComplexity int) int
TaggedUsers func(childComplexity int) int
URL func(childComplexity int) int
}
Query struct {
AllPhotos func(childComplexity int) int
AllUsers func(childComplexity int) int
Me func(childComplexity int) int
Photo func(childComplexity int, id string) int
TotalPhotos func(childComplexity int) int
TotalUsers func(childComplexity int) int
User func(childComplexity int, login string) int
}
Subscription struct {
NewPhoto func(childComplexity int, userID string) int
NewUser func(childComplexity int) int
}
User struct {
Avatar func(childComplexity int) int
GithubLogin func(childComplexity int) int
InPhotos func(childComplexity int) int
Name func(childComplexity int) int
PostedPhotos func(childComplexity int) int
}
}
type Config ¶
type Config struct {
Resolvers ResolverRoot
Directives DirectiveRoot
Complexity ComplexityRoot
}
type DirectiveRoot ¶
type DirectiveRoot struct {
}
type MutationResolver ¶
type MutationResolver interface {
PostPhoto(ctx context.Context, input model.PostPhotoInput) (*model.Photo, error)
TagPhoto(ctx context.Context, githubLogin string, photoID string) (*model.Photo, error)
GithubAuth(ctx context.Context, code string) (*model.AuthPayload, error)
AddFakeUsers(ctx context.Context, count *int) ([]*model.User, error)
FakeUserAuth(ctx context.Context, githubLogin string) (*model.AuthPayload, error)
}
type QueryResolver ¶
type QueryResolver interface {
Me(ctx context.Context) (*model.User, error)
TotalPhotos(ctx context.Context) (int, error)
AllPhotos(ctx context.Context) ([]*model.Photo, error)
Photo(ctx context.Context, id string) (*model.Photo, error)
TotalUsers(ctx context.Context) (int, error)
AllUsers(ctx context.Context) ([]*model.User, error)
User(ctx context.Context, login string) (*model.User, error)
}
type Resolver ¶
type Resolver struct {
AuthService auth.AuthService
PhotoChs map[string]chan *model.Photo // photoの追加時にpubするchannel
Mutex sync.Mutex // channelの追加・削除の排他制御
DbClient *mongo.Client
}
func (*Resolver) Mutation ¶
func (r *Resolver) Mutation() MutationResolver
Mutation returns MutationResolver implementation.
func (*Resolver) Query ¶
func (r *Resolver) Query() QueryResolver
Query returns QueryResolver implementation.
func (*Resolver) Subscription ¶
func (r *Resolver) Subscription() SubscriptionResolver
Subscription returns SubscriptionResolver implementation.
type ResolverRoot ¶
type ResolverRoot interface {
Mutation() MutationResolver
Query() QueryResolver
Subscription() SubscriptionResolver
}
Click to show internal directories.
Click to hide internal directories.