summaryrefslogtreecommitdiffstats
path: root/routers/repo/issue.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2019-12-07 23:04:19 +0100
committertechknowlogick <techknowlogick@gitea.io>2019-12-07 17:04:19 -0500
commit37e10d4543c1e516e1a721d72c0054fefceb9499 (patch)
treef824b014a135d3bcf243d5bb3e87cab3de225c90 /routers/repo/issue.go
parentee7df7ba8c5e6a4b32b0c4048d2b535d8df3cbe9 (diff)
downloadgitea-37e10d4543c1e516e1a721d72c0054fefceb9499.tar.gz
gitea-37e10d4543c1e516e1a721d72c0054fefceb9499.zip
[API] Add Reactions (#9220)
* reject reactions wich ar not allowed * dont duble check CreateReaction now throw ErrForbiddenIssueReaction * add /repos/{owner}/{repo}/issues/comments/{id}/reactions endpoint * add Find Functions * fix some swagger stuff + add issue reaction endpoints + GET ReactionList now use FindReactions... * explicite Issue Only Reaction for FindReactionsOptions with "-1" commentID * load issue; load user ... * return error again * swagger def canged after LINT * check if user has ben loaded * add Tests * better way of comparing results * add suggestion * use different issue for test (dont interfear with integration test) * test dont compare Location on timeCompare * TEST: add forbidden dubble add * add comments in code to explain * add settings.UI.ReactionsMap so if !setting.UI.ReactionsMap[opts.Type] works
Diffstat (limited to 'routers/repo/issue.go')
-rw-r--r--routers/repo/issue.go20
1 files changed, 8 insertions, 12 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index c79ea02e86..5d5aaca253 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -1463,14 +1463,12 @@ func ChangeIssueReaction(ctx *context.Context, form auth.ReactionForm) {
switch ctx.Params(":action") {
case "react":
- if !util.IsStringInSlice(form.Content, setting.UI.Reactions) {
- err := fmt.Errorf("ChangeIssueReaction: '%s' is not an allowed reaction", form.Content)
- ctx.ServerError(err.Error(), err)
- return
- }
-
reaction, err := models.CreateIssueReaction(ctx.User, issue, form.Content)
if err != nil {
+ if models.IsErrForbiddenIssueReaction(err) {
+ ctx.ServerError("ChangeIssueReaction", err)
+ return
+ }
log.Info("CreateIssueReaction: %s", err)
break
}
@@ -1564,14 +1562,12 @@ func ChangeCommentReaction(ctx *context.Context, form auth.ReactionForm) {
switch ctx.Params(":action") {
case "react":
- if !util.IsStringInSlice(form.Content, setting.UI.Reactions) {
- err := fmt.Errorf("ChangeIssueReaction: '%s' is not an allowed reaction", form.Content)
- ctx.ServerError(err.Error(), err)
- return
- }
-
reaction, err := models.CreateCommentReaction(ctx.User, comment.Issue, comment, form.Content)
if err != nil {
+ if models.IsErrForbiddenIssueReaction(err) {
+ ctx.ServerError("ChangeIssueReaction", err)
+ return
+ }
log.Info("CreateCommentReaction: %s", err)
break
}