diff options
author | 6543 <6543@obermui.de> | 2019-12-07 23:04:19 +0100 |
---|---|---|
committer | techknowlogick <techknowlogick@gitea.io> | 2019-12-07 17:04:19 -0500 |
commit | 37e10d4543c1e516e1a721d72c0054fefceb9499 (patch) | |
tree | f824b014a135d3bcf243d5bb3e87cab3de225c90 /routers/repo/issue.go | |
parent | ee7df7ba8c5e6a4b32b0c4048d2b535d8df3cbe9 (diff) | |
download | gitea-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.go | 20 |
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 } |