@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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!
|
||||||
|
|||||||
@@ -77,4 +77,12 @@ 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!
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user