Browse Source

graph2, models: Added removeComment mutation.

module-madness-pointers
Gisle Aune 6 years ago
parent
commit
22592439da
  1. 28
      graph2/queries/comment.go
  2. 3
      graph2/schema/root.gql
  3. 8
      graph2/schema/types/Comment.gql

28
graph2/queries/comment.go

@ -116,3 +116,31 @@ func (r *mutationResolver) EditComment(ctx context.Context, input input.CommentE
return comment, nil return comment, nil
} }
func (r *mutationResolver) RemoveComment(ctx context.Context, input input.CommentRemoveInput) (models.Comment, error) {
comment, err := comments.Find(input.CommentID)
if err != nil {
return models.Comment{}, errors.New("Comment not found")
}
token := auth.TokenFromContext(ctx)
if !token.PermittedUser(comment.Author, "member", "story.edit") {
return models.Comment{}, errors.New("You cannot remove this comment")
}
chapter, err := chapters.FindID(comment.ChapterID)
if err != nil {
return models.Comment{}, errors.New("Comment's chapter not found")
}
if !chapter.CanComment() {
return models.Comment{}, errors.New("Comments are disabled or locked")
}
err = comments.Remove(comment)
if err != nil {
return models.Comment{}, errors.New("Failed to remove comment: " + err.Error())
}
return comment, nil
}

3
graph2/schema/root.gql

@ -107,6 +107,9 @@ type Mutation {
"Edit a comment in a chapter." "Edit a comment in a chapter."
editComment(input: CommentEditInput!): Comment! editComment(input: CommentEditInput!): Comment!
"Remove a comemnt in a chapter."
removeComment(input: CommentRemoveInput!): Comment!
# Add a new log # Add a new log
addLog(input: LogAddInput!): Log! addLog(input: LogAddInput!): Log!

8
graph2/schema/types/Comment.gql

@ -78,3 +78,11 @@ input CommentEditInput {
"Change the optional subject for the comment, only shown in some modes." "Change the optional subject for the comment, only shown in some modes."
subject: String subject: String
} }
"""
Input for the removeComment mutation
"""
input CommentRemoveInput {
"What comment to edit."
commentId: String!
}
Loading…
Cancel
Save