forked from forgejo/forgejo
Add GetCurrentReview to simplify fetching current review
Signed-off-by: Jonas Franz <info@jonasfranz.software>
This commit is contained in:
parent
4ad563d66f
commit
17af2d17be
2 changed files with 28 additions and 12 deletions
|
@ -6,6 +6,7 @@ package models
|
|||
|
||||
import (
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
|
||||
"github.com/go-xorm/builder"
|
||||
)
|
||||
|
||||
|
@ -156,3 +157,23 @@ func createReview(e Engine, opts CreateReviewOptions) (*Review, error) {
|
|||
func CreateReview(opts CreateReviewOptions) (*Review, error) {
|
||||
return createReview(x, opts)
|
||||
}
|
||||
|
||||
func getCurrentReview(e Engine, reviewer *User, issue *Issue) (*Review, error) {
|
||||
reviews, err := findReviews(e, FindReviewOptions{
|
||||
Type: ReviewTypePending,
|
||||
IssueID: issue.ID,
|
||||
ReviewerID: reviewer.ID,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(reviews) == 0 {
|
||||
return nil, ErrReviewNotExist{}
|
||||
}
|
||||
return reviews[0], nil
|
||||
}
|
||||
|
||||
// GetCurrentReview returns the current pending review of reviewer for given issue
|
||||
func GetCurrentReview(reviewer *User, issue *Issue) (*Review, error) {
|
||||
return getCurrentReview(x, reviewer, issue)
|
||||
}
|
||||
|
|
|
@ -45,17 +45,14 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) {
|
|||
|
||||
review := new(models.Review)
|
||||
if form.IsReview {
|
||||
var err error
|
||||
// Check if the user has already a pending review for this issue
|
||||
reviews, err := models.FindReviews(models.FindReviewOptions{
|
||||
ReviewerID: ctx.User.ID,
|
||||
IssueID: issue.ID,
|
||||
Type: models.ReviewTypePending,
|
||||
})
|
||||
if err != nil {
|
||||
ctx.ServerError("CreateCodeComment", err)
|
||||
return
|
||||
}
|
||||
if len(reviews) == 0 {
|
||||
if review, err = models.GetCurrentReview(ctx.User, issue); err != nil {
|
||||
if !models.IsErrReviewNotExist(err) {
|
||||
ctx.ServerError("CreateCodeComment", err)
|
||||
return
|
||||
}
|
||||
// No pending review exists
|
||||
// Create a new pending review for this issue & user
|
||||
if review, err = models.CreateReview(models.CreateReviewOptions{
|
||||
Type: models.ReviewTypePending,
|
||||
|
@ -65,8 +62,6 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) {
|
|||
ctx.ServerError("CreateCodeComment", err)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
review = reviews[0]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue