summaryrefslogtreecommitdiffstats
path: root/models/pull.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-09-19 19:49:59 +0800
committerGitHub <noreply@github.com>2021-09-19 19:49:59 +0800
commita4bfef265d9e512830350635a0489c2cdcd6508f (patch)
tree1e3c2ec94276dfcb2f8ba73a2ac075ba39c4a34a /models/pull.go
parent462306e263db5a809dbe2cdf62e99307aeff28de (diff)
downloadgitea-a4bfef265d9e512830350635a0489c2cdcd6508f.tar.gz
gitea-a4bfef265d9e512830350635a0489c2cdcd6508f.zip
Move db related basic functions to models/db (#17075)
* Move db related basic functions to models/db * Fix lint * Fix lint * Fix test * Fix lint * Fix lint * revert unnecessary change * Fix test * Fix wrong replace string * Use *Context * Correct committer spelling and fix wrong replaced words Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'models/pull.go')
-rw-r--r--models/pull.go65
1 files changed, 35 insertions, 30 deletions
diff --git a/models/pull.go b/models/pull.go
index ea8f289993..9251673576 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -10,6 +10,7 @@ import (
"io"
"strings"
+ "code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/timeutil"
@@ -84,6 +85,10 @@ type PullRequest struct {
Flow PullRequestFlow `xorm:"NOT NULL DEFAULT 0"`
}
+func init() {
+ db.RegisterModel(new(PullRequest))
+}
+
// MustHeadUserName returns the HeadRepo's username if failed return blank
func (pr *PullRequest) MustHeadUserName() string {
if err := pr.LoadHeadRepo(); err != nil {
@@ -101,7 +106,7 @@ func (pr *PullRequest) MustHeadUserName() string {
}
// Note: don't try to get Issue because will end up recursive querying.
-func (pr *PullRequest) loadAttributes(e Engine) (err error) {
+func (pr *PullRequest) loadAttributes(e db.Engine) (err error) {
if pr.HasMerged && pr.Merger == nil {
pr.Merger, err = getUserByID(e, pr.MergerID)
if IsErrUserNotExist(err) {
@@ -117,10 +122,10 @@ func (pr *PullRequest) loadAttributes(e Engine) (err error) {
// LoadAttributes loads pull request attributes from database
func (pr *PullRequest) LoadAttributes() error {
- return pr.loadAttributes(x)
+ return pr.loadAttributes(db.DefaultContext().Engine())
}
-func (pr *PullRequest) loadHeadRepo(e Engine) (err error) {
+func (pr *PullRequest) loadHeadRepo(e db.Engine) (err error) {
if !pr.isHeadRepoLoaded && pr.HeadRepo == nil && pr.HeadRepoID > 0 {
if pr.HeadRepoID == pr.BaseRepoID {
if pr.BaseRepo != nil {
@@ -143,15 +148,15 @@ func (pr *PullRequest) loadHeadRepo(e Engine) (err error) {
// LoadHeadRepo loads the head repository
func (pr *PullRequest) LoadHeadRepo() error {
- return pr.loadHeadRepo(x)
+ return pr.loadHeadRepo(db.DefaultContext().Engine())
}
// LoadBaseRepo loads the target repository
func (pr *PullRequest) LoadBaseRepo() error {
- return pr.loadBaseRepo(x)
+ return pr.loadBaseRepo(db.DefaultContext().Engine())
}
-func (pr *PullRequest) loadBaseRepo(e Engine) (err error) {
+func (pr *PullRequest) loadBaseRepo(e db.Engine) (err error) {
if pr.BaseRepo != nil {
return nil
}
@@ -175,10 +180,10 @@ func (pr *PullRequest) loadBaseRepo(e Engine) (err error) {
// LoadIssue loads issue information from database
func (pr *PullRequest) LoadIssue() (err error) {
- return pr.loadIssue(x)
+ return pr.loadIssue(db.DefaultContext().Engine())
}
-func (pr *PullRequest) loadIssue(e Engine) (err error) {
+func (pr *PullRequest) loadIssue(e db.Engine) (err error) {
if pr.Issue != nil {
return nil
}
@@ -192,10 +197,10 @@ func (pr *PullRequest) loadIssue(e Engine) (err error) {
// LoadProtectedBranch loads the protected branch of the base branch
func (pr *PullRequest) LoadProtectedBranch() (err error) {
- return pr.loadProtectedBranch(x)
+ return pr.loadProtectedBranch(db.DefaultContext().Engine())
}
-func (pr *PullRequest) loadProtectedBranch(e Engine) (err error) {
+func (pr *PullRequest) loadProtectedBranch(e db.Engine) (err error) {
if pr.ProtectedBranch == nil {
if pr.BaseRepo == nil {
if pr.BaseRepoID == 0 {
@@ -252,10 +257,10 @@ type ReviewCount struct {
// GetApprovalCounts returns the approval counts by type
// FIXME: Only returns official counts due to double counting of non-official counts
func (pr *PullRequest) GetApprovalCounts() ([]*ReviewCount, error) {
- return pr.getApprovalCounts(x)
+ return pr.getApprovalCounts(db.DefaultContext().Engine())
}
-func (pr *PullRequest) getApprovalCounts(e Engine) ([]*ReviewCount, error) {
+func (pr *PullRequest) getApprovalCounts(e db.Engine) ([]*ReviewCount, error) {
rCounts := make([]*ReviewCount, 0, 6)
sess := e.Where("issue_id = ?", pr.IssueID)
return rCounts, sess.Select("issue_id, type, count(id) as `count`").Where("official = ? AND dismissed = ?", true, false).GroupBy("issue_id, type").Table("review").Find(&rCounts)
@@ -279,7 +284,7 @@ func (pr *PullRequest) getReviewedByLines(writer io.Writer) error {
return nil
}
- sess := x.NewSession()
+ sess := db.DefaultContext().NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
return err
@@ -388,7 +393,7 @@ func (pr *PullRequest) SetMerged() (bool, error) {
pr.HasMerged = true
- sess := x.NewSession()
+ sess := db.DefaultContext().NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
return false, err
@@ -443,14 +448,14 @@ func (pr *PullRequest) SetMerged() (bool, error) {
// NewPullRequest creates new pull request with labels for repository.
func NewPullRequest(repo *Repository, issue *Issue, labelIDs []int64, uuids []string, pr *PullRequest) (err error) {
- idx, err := GetNextResourceIndex("issue_index", repo.ID)
+ idx, err := db.GetNextResourceIndex("issue_index", repo.ID)
if err != nil {
return fmt.Errorf("generate issue index failed: %v", err)
}
issue.Index = idx
- sess := x.NewSession()
+ sess := db.DefaultContext().NewSession()
defer sess.Close()
if err = sess.Begin(); err != nil {
return err
@@ -487,7 +492,7 @@ func NewPullRequest(repo *Repository, issue *Issue, labelIDs []int64, uuids []st
// by given head/base and repo/branch.
func GetUnmergedPullRequest(headRepoID, baseRepoID int64, headBranch, baseBranch string, flow PullRequestFlow) (*PullRequest, error) {
pr := new(PullRequest)
- has, err := x.
+ has, err := db.DefaultContext().Engine().
Where("head_repo_id=? AND head_branch=? AND base_repo_id=? AND base_branch=? AND has_merged=? AND flow = ? AND issue.is_closed=?",
headRepoID, headBranch, baseRepoID, baseBranch, false, flow, false).
Join("INNER", "issue", "issue.id=pull_request.issue_id").
@@ -505,7 +510,7 @@ func GetUnmergedPullRequest(headRepoID, baseRepoID int64, headBranch, baseBranch
// by given head information (repo and branch).
func GetLatestPullRequestByHeadInfo(repoID int64, branch string) (*PullRequest, error) {
pr := new(PullRequest)
- has, err := x.
+ has, err := db.DefaultContext().Engine().
Where("head_repo_id = ? AND head_branch = ? AND flow = ?", repoID, branch, PullRequestFlowGithub).
OrderBy("id DESC").
Get(pr)
@@ -522,7 +527,7 @@ func GetPullRequestByIndex(repoID, index int64) (*PullRequest, error) {
Index: index,
}
- has, err := x.Get(pr)
+ has, err := db.DefaultContext().Engine().Get(pr)
if err != nil {
return nil, err
} else if !has {
@@ -539,7 +544,7 @@ func GetPullRequestByIndex(repoID, index int64) (*PullRequest, error) {
return pr, nil
}
-func getPullRequestByID(e Engine, id int64) (*PullRequest, error) {
+func getPullRequestByID(e db.Engine, id int64) (*PullRequest, error) {
pr := new(PullRequest)
has, err := e.ID(id).Get(pr)
if err != nil {
@@ -552,13 +557,13 @@ func getPullRequestByID(e Engine, id int64) (*PullRequest, error) {
// GetPullRequestByID returns a pull request by given ID.
func GetPullRequestByID(id int64) (*PullRequest, error) {
- return getPullRequestByID(x, id)
+ return getPullRequestByID(db.DefaultContext().Engine(), id)
}
// GetPullRequestByIssueIDWithNoAttributes returns pull request with no attributes loaded by given issue ID.
func GetPullRequestByIssueIDWithNoAttributes(issueID int64) (*PullRequest, error) {
var pr PullRequest
- has, err := x.Where("issue_id = ?", issueID).Get(&pr)
+ has, err := db.DefaultContext().Engine().Where("issue_id = ?", issueID).Get(&pr)
if err != nil {
return nil, err
}
@@ -568,7 +573,7 @@ func GetPullRequestByIssueIDWithNoAttributes(issueID int64) (*PullRequest, error
return &pr, nil
}
-func getPullRequestByIssueID(e Engine, issueID int64) (*PullRequest, error) {
+func getPullRequestByIssueID(e db.Engine, issueID int64) (*PullRequest, error) {
pr := &PullRequest{
IssueID: issueID,
}
@@ -586,7 +591,7 @@ func getPullRequestByIssueID(e Engine, issueID int64) (*PullRequest, error) {
func GetAllUnmergedAgitPullRequestByPoster(uid int64) ([]*PullRequest, error) {
pulls := make([]*PullRequest, 0, 10)
- err := x.
+ err := db.DefaultContext().Engine().
Where("has_merged=? AND flow = ? AND issue.is_closed=? AND issue.poster_id=?",
false, PullRequestFlowAGit, false, uid).
Join("INNER", "issue", "issue.id=pull_request.issue_id").
@@ -597,24 +602,24 @@ func GetAllUnmergedAgitPullRequestByPoster(uid int64) ([]*PullRequest, error) {
// GetPullRequestByIssueID returns pull request by given issue ID.
func GetPullRequestByIssueID(issueID int64) (*PullRequest, error) {
- return getPullRequestByIssueID(x, issueID)
+ return getPullRequestByIssueID(db.DefaultContext().Engine(), issueID)
}
// Update updates all fields of pull request.
func (pr *PullRequest) Update() error {
- _, err := x.ID(pr.ID).AllCols().Update(pr)
+ _, err := db.DefaultContext().Engine().ID(pr.ID).AllCols().Update(pr)
return err
}
// UpdateCols updates specific fields of pull request.
func (pr *PullRequest) UpdateCols(cols ...string) error {
- _, err := x.ID(pr.ID).Cols(cols...).Update(pr)
+ _, err := db.DefaultContext().Engine().ID(pr.ID).Cols(cols...).Update(pr)
return err
}
// UpdateColsIfNotMerged updates specific fields of a pull request if it has not been merged
func (pr *PullRequest) UpdateColsIfNotMerged(cols ...string) error {
- _, err := x.Where("id = ? AND has_merged = ?", pr.ID, false).Cols(cols...).Update(pr)
+ _, err := db.DefaultContext().Engine().Where("id = ? AND has_merged = ?", pr.ID, false).Cols(cols...).Update(pr)
return err
}
@@ -660,10 +665,10 @@ func (pr *PullRequest) GetWorkInProgressPrefix() string {
// UpdateCommitDivergence update Divergence of a pull request
func (pr *PullRequest) UpdateCommitDivergence(ahead, behind int) error {
- return pr.updateCommitDivergence(x, ahead, behind)
+ return pr.updateCommitDivergence(db.DefaultContext().Engine(), ahead, behind)
}
-func (pr *PullRequest) updateCommitDivergence(e Engine, ahead, behind int) error {
+func (pr *PullRequest) updateCommitDivergence(e db.Engine, ahead, behind int) error {
if pr.ID == 0 {
return fmt.Errorf("pull ID is 0")
}