Skip to content

Commit c021890

Browse files
authored
move CreateReview to moduels/pull (#7841)
1 parent eaa4d4e commit c021890

File tree

3 files changed

+60
-38
lines changed

3 files changed

+60
-38
lines changed

models/review.go

-37
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"fmt"
99

1010
"code.gitea.io/gitea/modules/log"
11-
api "code.gitea.io/gitea/modules/structs"
1211
"code.gitea.io/gitea/modules/util"
1312

1413
"github.com/go-xorm/xorm"
@@ -235,42 +234,6 @@ func createReview(e Engine, opts CreateReviewOptions) (*Review, error) {
235234
return nil, err
236235
}
237236

238-
var reviewHookType HookEventType
239-
240-
switch opts.Type {
241-
case ReviewTypeApprove:
242-
reviewHookType = HookEventPullRequestApproved
243-
case ReviewTypeComment:
244-
reviewHookType = HookEventPullRequestComment
245-
case ReviewTypeReject:
246-
reviewHookType = HookEventPullRequestRejected
247-
default:
248-
// unsupported review webhook type here
249-
return review, nil
250-
}
251-
252-
pr := opts.Issue.PullRequest
253-
254-
if err := pr.LoadIssue(); err != nil {
255-
return nil, err
256-
}
257-
258-
mode, err := AccessLevel(opts.Issue.Poster, opts.Issue.Repo)
259-
if err != nil {
260-
return nil, err
261-
}
262-
263-
if err := PrepareWebhooks(opts.Issue.Repo, reviewHookType, &api.PullRequestPayload{
264-
Action: api.HookIssueSynchronized,
265-
Index: opts.Issue.Index,
266-
PullRequest: pr.APIFormat(),
267-
Repository: opts.Issue.Repo.APIFormat(mode),
268-
Sender: opts.Reviewer.APIFormat(),
269-
}); err != nil {
270-
return nil, err
271-
}
272-
go HookQueue.Add(opts.Issue.Repo.ID)
273-
274237
return review, nil
275238
}
276239

modules/pull/review.go

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
// Copyright 2019 The Gitea Authors.
2+
// All rights reserved.
3+
// Use of this source code is governed by a MIT-style
4+
// license that can be found in the LICENSE file.
5+
6+
package pull
7+
8+
import (
9+
"code.gitea.io/gitea/models"
10+
api "code.gitea.io/gitea/modules/structs"
11+
)
12+
13+
// CreateReview creates a new review based on opts
14+
func CreateReview(opts models.CreateReviewOptions) (*models.Review, error) {
15+
review, err := models.CreateReview(opts)
16+
if err != nil {
17+
return nil, err
18+
}
19+
20+
var reviewHookType models.HookEventType
21+
22+
switch opts.Type {
23+
case models.ReviewTypeApprove:
24+
reviewHookType = models.HookEventPullRequestApproved
25+
case models.ReviewTypeComment:
26+
reviewHookType = models.HookEventPullRequestComment
27+
case models.ReviewTypeReject:
28+
reviewHookType = models.HookEventPullRequestRejected
29+
default:
30+
// unsupported review webhook type here
31+
return review, nil
32+
}
33+
34+
pr := opts.Issue.PullRequest
35+
36+
if err := pr.LoadIssue(); err != nil {
37+
return nil, err
38+
}
39+
40+
mode, err := models.AccessLevel(opts.Issue.Poster, opts.Issue.Repo)
41+
if err != nil {
42+
return nil, err
43+
}
44+
45+
if err := models.PrepareWebhooks(opts.Issue.Repo, reviewHookType, &api.PullRequestPayload{
46+
Action: api.HookIssueSynchronized,
47+
Index: opts.Issue.Index,
48+
PullRequest: pr.APIFormat(),
49+
Repository: opts.Issue.Repo.APIFormat(mode),
50+
Sender: opts.Reviewer.APIFormat(),
51+
}); err != nil {
52+
return nil, err
53+
}
54+
go models.HookQueue.Add(opts.Issue.Repo.ID)
55+
56+
return review, nil
57+
}

routers/repo/pull_review.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"code.gitea.io/gitea/modules/context"
1313
"code.gitea.io/gitea/modules/log"
1414
"code.gitea.io/gitea/modules/notification"
15+
pull_service "code.gitea.io/gitea/modules/pull"
1516
)
1617

1718
// CreateCodeComment will create a code comment including an pending review if required
@@ -53,14 +54,15 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) {
5354
}
5455
// No pending review exists
5556
// Create a new pending review for this issue & user
56-
if review, err = models.CreateReview(models.CreateReviewOptions{
57+
if review, err = pull_service.CreateReview(models.CreateReviewOptions{
5758
Type: models.ReviewTypePending,
5859
Reviewer: ctx.User,
5960
Issue: issue,
6061
}); err != nil {
6162
ctx.ServerError("CreateCodeComment", err)
6263
return
6364
}
65+
6466
}
6567
}
6668
if review.ID == 0 {

0 commit comments

Comments
 (0)