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" "errors"
"git.aiterp.net/rpdata/api/graph2/input" "git.aiterp.net/rpdata/api/internal/auth" "git.aiterp.net/rpdata/api/models" "git.aiterp.net/rpdata/api/models/channels" )
// Queries
func (r *resolver) Channel(ctx context.Context, name string) (models.Channel, error) { return channels.FindName(name) }
func (r *resolver) Channels(ctx context.Context, filter *channels.Filter) ([]models.Channel, error) { return channels.List(filter) }
// Mutations
func (r *mutationResolver) AddChannel(ctx context.Context, input input.ChannelAddInput) (models.Channel, error) { token := auth.TokenFromContext(ctx) if !token.Authenticated() || !token.Permitted("channel.add") { return models.Channel{}, errors.New("You are not permitted to add channels") }
logged := false if input.Logged != nil { logged = *input.Logged } hub := false if input.Hub != nil { hub = *input.Hub } eventName := "" if input.EventName != nil { eventName = *input.EventName } locationName := "" if input.LocationName != nil { locationName = *input.LocationName }
return channels.Add(input.Name, logged, hub, eventName, locationName) }
func (r *mutationResolver) EditChannel(ctx context.Context, input input.ChannelEditInput) (models.Channel, error) { token := auth.TokenFromContext(ctx) if !token.Authenticated() || !token.Permitted("channel.edit") { return models.Channel{}, errors.New("You are not permitted to edit channels") }
channel, err := channels.FindName(input.Name) if err != nil { return models.Channel{}, errors.New("Channel not found") }
return channels.Edit(channel, input.Logged, input.Hub, input.EventName, input.LocationName) }
|