GraphQL API and utilities for the rpdata project
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package queries
import ( "context"
"git.aiterp.net/rpdata/api/graphql/resolver/types" "git.aiterp.net/rpdata/api/model/character" )
// CharactersArgs is args for characters query
type CharactersArgs struct { Filter *struct { IDs *[]string Nicks *[]string Names *[]string Author *string Search *string } }
// Characters resolves the characters query
func (r *QueryResolver) Characters(ctx context.Context, args *CharactersArgs) ([]*types.CharacterResolver, error) { var characters []character.Character var err error
filter := args.Filter if filter != nil { var ids []string var nicks []string var names []string
if filter.IDs != nil { ids = *filter.IDs } if filter.Nicks != nil { nicks = *filter.Nicks } if filter.Names != nil { names = *filter.Names }
characters, err = character.ListFilter(ids, nicks, names, filter.Author, filter.Search) if err != nil { return nil, err } } else { characters, err = character.List() if err != nil { return nil, err } }
resolvers := make([]*types.CharacterResolver, 0, len(characters)) for _, character := range characters { resolvers = append(resolvers, &types.CharacterResolver{C: character}) }
return resolvers, nil }
|