|
|
@ -10,11 +10,9 @@ import ( |
|
|
|
"git.aiterp.net/rpdata/api/model/change" |
|
|
|
"git.aiterp.net/rpdata/api/model/character" |
|
|
|
"git.aiterp.net/rpdata/api/model/log" |
|
|
|
"git.aiterp.net/rpdata/api/resolver/types" |
|
|
|
) |
|
|
|
|
|
|
|
// CharacterResolver for the Character graphql type
|
|
|
|
type CharacterResolver struct{ C character.Character } |
|
|
|
|
|
|
|
// CharacterArgs is an arg
|
|
|
|
type CharacterArgs struct { |
|
|
|
ID *string |
|
|
@ -22,7 +20,7 @@ type CharacterArgs struct { |
|
|
|
} |
|
|
|
|
|
|
|
// Character resolver
|
|
|
|
func (r *QueryResolver) Character(ctx context.Context, args *CharacterArgs) (*CharacterResolver, error) { |
|
|
|
func (r *QueryResolver) Character(ctx context.Context, args *CharacterArgs) (*types.CharacterResolver, error) { |
|
|
|
var char character.Character |
|
|
|
var err error |
|
|
|
|
|
|
@ -44,7 +42,7 @@ func (r *QueryResolver) Character(ctx context.Context, args *CharacterArgs) (*Ch |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
|
|
|
|
return &CharacterResolver{C: char}, nil |
|
|
|
return &types.CharacterResolver{C: char}, nil |
|
|
|
} |
|
|
|
|
|
|
|
// CharactersArgs is an arg
|
|
|
@ -55,7 +53,7 @@ type CharactersArgs struct { |
|
|
|
} |
|
|
|
|
|
|
|
// Characters resolves the characters query
|
|
|
|
func (r *QueryResolver) Characters(ctx context.Context, args *CharactersArgs) ([]*CharacterResolver, error) { |
|
|
|
func (r *QueryResolver) Characters(ctx context.Context, args *CharactersArgs) ([]*types.CharacterResolver, error) { |
|
|
|
var chars []character.Character |
|
|
|
var err error |
|
|
|
|
|
|
@ -79,13 +77,13 @@ func (r *QueryResolver) Characters(ctx context.Context, args *CharactersArgs) ([ |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
|
|
|
|
resolvers := make([]*CharacterResolver, 0, len(chars)) |
|
|
|
resolvers := make([]*types.CharacterResolver, 0, len(chars)) |
|
|
|
for i := range chars { |
|
|
|
if chars[i].ID == "" { |
|
|
|
continue |
|
|
|
} |
|
|
|
|
|
|
|
resolvers = append(resolvers, &CharacterResolver{C: chars[i]}) |
|
|
|
resolvers = append(resolvers, &types.CharacterResolver{C: chars[i]}) |
|
|
|
} |
|
|
|
|
|
|
|
return resolvers, nil |
|
|
@ -101,7 +99,7 @@ type AddCharacterInput struct { |
|
|
|
} |
|
|
|
|
|
|
|
// AddCharacter resolves the addCharacter mutation
|
|
|
|
func (r *MutationResolver) AddCharacter(ctx context.Context, args struct{ Input *AddCharacterInput }) (*CharacterResolver, error) { |
|
|
|
func (r *MutationResolver) AddCharacter(ctx context.Context, args struct{ Input *AddCharacterInput }) (*types.CharacterResolver, error) { |
|
|
|
input := args.Input |
|
|
|
user := session.FromContext(ctx).User() |
|
|
|
if user == nil || !user.Permitted("member", "character.add") { |
|
|
@ -146,7 +144,7 @@ func (r *MutationResolver) AddCharacter(ctx context.Context, args struct{ Input |
|
|
|
|
|
|
|
log.ScheduleCharacterUpdate() |
|
|
|
|
|
|
|
return &CharacterResolver{C: character}, nil |
|
|
|
return &types.CharacterResolver{C: character}, nil |
|
|
|
} |
|
|
|
|
|
|
|
// CharacterNickInput is args for mutation addCharacterNick/removeCharacterNick
|
|
|
@ -156,7 +154,7 @@ type CharacterNickInput struct { |
|
|
|
} |
|
|
|
|
|
|
|
// AddCharacterNick resolves the addCharacterNick mutation
|
|
|
|
func (r *MutationResolver) AddCharacterNick(ctx context.Context, args struct{ Input *CharacterNickInput }) (*CharacterResolver, error) { |
|
|
|
func (r *MutationResolver) AddCharacterNick(ctx context.Context, args struct{ Input *CharacterNickInput }) (*types.CharacterResolver, error) { |
|
|
|
input := args.Input |
|
|
|
|
|
|
|
user := session.FromContext(ctx).User() |
|
|
@ -183,11 +181,11 @@ func (r *MutationResolver) AddCharacterNick(ctx context.Context, args struct{ In |
|
|
|
|
|
|
|
log.ScheduleCharacterUpdate() |
|
|
|
|
|
|
|
return &CharacterResolver{C: character}, nil |
|
|
|
return &types.CharacterResolver{C: character}, nil |
|
|
|
} |
|
|
|
|
|
|
|
// RemoveCharacterNick resolves the removeCharacterNick mutation
|
|
|
|
func (r *MutationResolver) RemoveCharacterNick(ctx context.Context, args struct{ Input *CharacterNickInput }) (*CharacterResolver, error) { |
|
|
|
func (r *MutationResolver) RemoveCharacterNick(ctx context.Context, args struct{ Input *CharacterNickInput }) (*types.CharacterResolver, error) { |
|
|
|
input := args.Input |
|
|
|
|
|
|
|
user := session.FromContext(ctx).User() |
|
|
@ -214,7 +212,7 @@ func (r *MutationResolver) RemoveCharacterNick(ctx context.Context, args struct{ |
|
|
|
|
|
|
|
log.ScheduleCharacterUpdate() |
|
|
|
|
|
|
|
return &CharacterResolver{C: character}, nil |
|
|
|
return &types.CharacterResolver{C: character}, nil |
|
|
|
} |
|
|
|
|
|
|
|
// CharacterEditInput is args for mutation addCharacterNick/removeCharacterNick
|
|
|
@ -226,7 +224,7 @@ type CharacterEditInput struct { |
|
|
|
} |
|
|
|
|
|
|
|
// EditCharacter resolves the editCharacter mutation
|
|
|
|
func (r *MutationResolver) EditCharacter(ctx context.Context, args struct{ Input *CharacterEditInput }) (*CharacterResolver, error) { |
|
|
|
func (r *MutationResolver) EditCharacter(ctx context.Context, args struct{ Input *CharacterEditInput }) (*types.CharacterResolver, error) { |
|
|
|
input := args.Input |
|
|
|
|
|
|
|
user := session.FromContext(ctx).User() |
|
|
@ -268,11 +266,11 @@ func (r *MutationResolver) EditCharacter(ctx context.Context, args struct{ Input |
|
|
|
"description": character.Description, |
|
|
|
}) |
|
|
|
|
|
|
|
return &CharacterResolver{C: character}, nil |
|
|
|
return &types.CharacterResolver{C: character}, nil |
|
|
|
} |
|
|
|
|
|
|
|
// RemoveCharacter resolves the removeCharacter mutation
|
|
|
|
func (r *MutationResolver) RemoveCharacter(ctx context.Context, args struct{ ID string }) (*CharacterResolver, error) { |
|
|
|
func (r *MutationResolver) RemoveCharacter(ctx context.Context, args struct{ ID string }) (*types.CharacterResolver, error) { |
|
|
|
user := session.FromContext(ctx).User() |
|
|
|
if user == nil || !user.Permitted("member") { |
|
|
|
return nil, ErrUnauthorized |
|
|
@ -297,44 +295,5 @@ func (r *MutationResolver) RemoveCharacter(ctx context.Context, args struct{ ID |
|
|
|
"nicks": character.Nicks, |
|
|
|
}) |
|
|
|
|
|
|
|
return &CharacterResolver{C: character}, nil |
|
|
|
} |
|
|
|
|
|
|
|
// ID is a property resolver
|
|
|
|
func (r *CharacterResolver) ID() string { |
|
|
|
return r.C.ID |
|
|
|
} |
|
|
|
|
|
|
|
// Nick is a property resolver
|
|
|
|
func (r *CharacterResolver) Nick() *string { |
|
|
|
if len(r.C.Nicks) == 0 { |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
return &r.C.Nicks[0] |
|
|
|
} |
|
|
|
|
|
|
|
// Nicks is a property resolver
|
|
|
|
func (r *CharacterResolver) Nicks() []string { |
|
|
|
return r.C.Nicks |
|
|
|
} |
|
|
|
|
|
|
|
// Name is a property resolver
|
|
|
|
func (r *CharacterResolver) Name() string { |
|
|
|
return r.C.Name |
|
|
|
} |
|
|
|
|
|
|
|
// ShortName is a property resolver
|
|
|
|
func (r *CharacterResolver) ShortName() string { |
|
|
|
return r.C.ShortName |
|
|
|
} |
|
|
|
|
|
|
|
// Author is a property resolver
|
|
|
|
func (r *CharacterResolver) Author() string { |
|
|
|
return r.C.Author |
|
|
|
} |
|
|
|
|
|
|
|
// Description is a property resolver
|
|
|
|
func (r *CharacterResolver) Description() string { |
|
|
|
return r.C.Description |
|
|
|
return &types.CharacterResolver{C: character}, nil |
|
|
|
} |