graph2: Added Log mutations
the build failed

This commit is contained in:
2018-09-30 17:05:26 +02:00
parent 6aafc67790
commit aeb5b26627
6 changed files with 168 additions and 0 deletions
+57
View File
@@ -5,12 +5,16 @@ import (
"errors"
"strings"
"git.aiterp.net/rpdata/api/graph2/input"
"git.aiterp.net/rpdata/api/internal/auth"
"git.aiterp.net/rpdata/api/internal/loader"
"git.aiterp.net/rpdata/api/models"
"git.aiterp.net/rpdata/api/models/logs"
"github.com/99designs/gqlgen/graphql"
)
// Queries
func (r *resolver) Log(ctx context.Context, id string) (models.Log, error) {
return logs.FindID(id)
}
@@ -44,3 +48,56 @@ func (r *resolver) Logs(ctx context.Context, filter *logs.Filter) ([]models.Log,
return logs, nil
}
// Mutations
func (r *mutationResolver) AddLog(ctx context.Context, input input.LogAddInput) (models.Log, error) {
token := auth.TokenFromContext(ctx)
if !token.Authenticated() || !token.Permitted("log.add") {
return models.Log{}, errors.New("You are not permitted to add logs")
}
open := input.Open != nil && *input.Open == true
title := ""
if input.Title != nil {
title = *input.Title
}
event := ""
if input.Event != nil {
event = *input.Event
}
description := ""
if input.Description != nil {
description = *input.Description
}
return logs.Add(input.Date, input.Channel, title, event, description, open)
}
func (r *mutationResolver) EditLog(ctx context.Context, input input.LogEditInput) (models.Log, error) {
token := auth.TokenFromContext(ctx)
if !token.Authenticated() || !token.Permitted("log.edit") {
return models.Log{}, errors.New("You are not permitted to edit logs")
}
log, err := logs.FindID(input.ID)
if err != nil {
return models.Log{}, errors.New("Log not found")
}
return logs.Edit(log, input.Title, input.Event, input.Description, input.Open)
}
func (r *mutationResolver) RemoveLog(ctx context.Context, input input.LogRemoveInput) (models.Log, error) {
token := auth.TokenFromContext(ctx)
if !token.Authenticated() || !token.Permitted("log.remove") {
return models.Log{}, errors.New("You are not permitted to remove logs")
}
log, err := logs.FindID(input.ID)
if err != nil {
return models.Log{}, errors.New("Log not found")
}
return logs.Remove(log)
}
+10
View File
@@ -85,6 +85,16 @@ type Mutation {
removeChapter(input: ChapterRemoveInput!): Chapter!
# Add a new log
addLog(input: LogAddInput!): Log!
# Edit a log
editLog(input: LogEditInput!): Log!
# Remove a log
removeLog(input: LogRemoveInput!): Log!
# Add a post
addPost(input: PostAddInput!): Post!
+6
View File
@@ -94,4 +94,10 @@ input LogEditInput {
# Open/close the log
open: Boolean
}
# Input for removeLog mutation
input LogRemoveInput {
# The id of the log to remove
id: String!
}