1
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-09-20 01:45:59 -04:00

Add GetCurrentReview to simplify fetching current review

Signed-off-by: Jonas Franz <info@jonasfranz.software>
This commit is contained in:
Jonas Franz 2018-05-10 21:50:57 +02:00
parent 4ad563d66f
commit 17af2d17be
No known key found for this signature in database
GPG Key ID: 506AEEBE80BEDECD
2 changed files with 28 additions and 12 deletions

View File

@ -6,6 +6,7 @@ package models
import ( import (
"code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/util"
"github.com/go-xorm/builder" "github.com/go-xorm/builder"
) )
@ -156,3 +157,23 @@ func createReview(e Engine, opts CreateReviewOptions) (*Review, error) {
func CreateReview(opts CreateReviewOptions) (*Review, error) { func CreateReview(opts CreateReviewOptions) (*Review, error) {
return createReview(x, opts) 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)
}

View File

@ -45,17 +45,14 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) {
review := new(models.Review) review := new(models.Review)
if form.IsReview { if form.IsReview {
var err error
// Check if the user has already a pending review for this issue // Check if the user has already a pending review for this issue
reviews, err := models.FindReviews(models.FindReviewOptions{ if review, err = models.GetCurrentReview(ctx.User, issue); err != nil {
ReviewerID: ctx.User.ID, if !models.IsErrReviewNotExist(err) {
IssueID: issue.ID,
Type: models.ReviewTypePending,
})
if err != nil {
ctx.ServerError("CreateCodeComment", err) ctx.ServerError("CreateCodeComment", err)
return return
} }
if len(reviews) == 0 { // No pending review exists
// Create a new pending review for this issue & user // Create a new pending review for this issue & user
if review, err = models.CreateReview(models.CreateReviewOptions{ if review, err = models.CreateReview(models.CreateReviewOptions{
Type: models.ReviewTypePending, Type: models.ReviewTypePending,
@ -65,8 +62,6 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) {
ctx.ServerError("CreateCodeComment", err) ctx.ServerError("CreateCodeComment", err)
return return
} }
} else {
review = reviews[0]
} }
} }