mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	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>
This commit is contained in:
		| @@ -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") | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user