diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-09-19 19:49:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-19 19:49:59 +0800 |
commit | a4bfef265d9e512830350635a0489c2cdcd6508f (patch) | |
tree | 1e3c2ec94276dfcb2f8ba73a2ac075ba39c4a34a /models/pull.go | |
parent | 462306e263db5a809dbe2cdf62e99307aeff28de (diff) | |
download | gitea-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.go | 65 |
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") } |