mirror of
https://github.com/kataras/iris.git
synced 2025-12-19 02:47:04 +00:00
77
_examples/graphql/schema-first/graph/schema.resolvers.go
Normal file
77
_examples/graphql/schema-first/graph/schema.resolvers.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package graph
|
||||
|
||||
// This file will be automatically regenerated based on the schema, any resolver implementations
|
||||
// will be copied through when generating and any unknown code will be moved to the end.
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/iris-contrib/outerbanks-api/graph/model"
|
||||
)
|
||||
|
||||
func (r *mutationResolver) UpsertCharacter(ctx context.Context, input model.CharacterInput) (*model.Character, error) {
|
||||
id := input.ID
|
||||
var character model.Character
|
||||
character.Name = input.Name
|
||||
character.CliqueType = input.CliqueType
|
||||
|
||||
n := len(r.Resolver.CharacterStore)
|
||||
if n == 0 {
|
||||
r.Resolver.CharacterStore = make(map[string]model.Character)
|
||||
}
|
||||
|
||||
if id != nil {
|
||||
cs, ok := r.Resolver.CharacterStore[*id]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("not found")
|
||||
}
|
||||
if input.IsHero != nil {
|
||||
character.IsHero = *input.IsHero
|
||||
} else {
|
||||
character.IsHero = cs.IsHero
|
||||
}
|
||||
r.Resolver.CharacterStore[*id] = character
|
||||
} else {
|
||||
// generate unique id
|
||||
nid := strconv.Itoa(n + 1)
|
||||
character.ID = nid
|
||||
if input.IsHero != nil {
|
||||
character.IsHero = *input.IsHero
|
||||
}
|
||||
r.Resolver.CharacterStore[nid] = character
|
||||
}
|
||||
|
||||
return &character, nil
|
||||
}
|
||||
|
||||
func (r *queryResolver) Character(ctx context.Context, id string) (*model.Character, error) {
|
||||
character, ok := r.Resolver.CharacterStore[id]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("not found")
|
||||
}
|
||||
return &character, nil
|
||||
}
|
||||
|
||||
func (r *queryResolver) Characters(ctx context.Context, cliqueType model.CliqueType) ([]*model.Character, error) {
|
||||
characters := make([]*model.Character, 0)
|
||||
for idx := range r.Resolver.CharacterStore {
|
||||
character := r.Resolver.CharacterStore[idx]
|
||||
if character.CliqueType == cliqueType {
|
||||
|
||||
characters = append(characters, &character)
|
||||
}
|
||||
}
|
||||
|
||||
return characters, nil
|
||||
}
|
||||
|
||||
// Mutation returns generated.MutationResolver implementation.
|
||||
func (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }
|
||||
|
||||
// Query returns generated.QueryResolver implementation.
|
||||
func (r *Resolver) Query() QueryResolver { return &queryResolver{r} }
|
||||
|
||||
type mutationResolver struct{ *Resolver }
|
||||
type queryResolver struct{ *Resolver }
|
||||
Reference in New Issue
Block a user