mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 02:08:36 +00: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:
@@ -8,6 +8,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/timeutil"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
@@ -55,6 +56,10 @@ type Project struct {
|
||||
ClosedDateUnix timeutil.TimeStamp
|
||||
}
|
||||
|
||||
func init() {
|
||||
db.RegisterModel(new(Project))
|
||||
}
|
||||
|
||||
// GetProjectsConfig retrieves the types of configurations projects could have
|
||||
func GetProjectsConfig() []ProjectsConfig {
|
||||
return []ProjectsConfig{
|
||||
@@ -85,10 +90,10 @@ type ProjectSearchOptions struct {
|
||||
|
||||
// GetProjects returns a list of all projects that have been created in the repository
|
||||
func GetProjects(opts ProjectSearchOptions) ([]*Project, int64, error) {
|
||||
return getProjects(x, opts)
|
||||
return getProjects(db.DefaultContext().Engine(), opts)
|
||||
}
|
||||
|
||||
func getProjects(e Engine, opts ProjectSearchOptions) ([]*Project, int64, error) {
|
||||
func getProjects(e db.Engine, opts ProjectSearchOptions) ([]*Project, int64, error) {
|
||||
projects := make([]*Project, 0, setting.UI.IssuePagingNum)
|
||||
|
||||
var cond builder.Cond = builder.Eq{"repo_id": opts.RepoID}
|
||||
@@ -138,7 +143,7 @@ func NewProject(p *Project) error {
|
||||
return errors.New("project type is not valid")
|
||||
}
|
||||
|
||||
sess := x.NewSession()
|
||||
sess := db.DefaultContext().NewSession()
|
||||
defer sess.Close()
|
||||
|
||||
if err := sess.Begin(); err != nil {
|
||||
@@ -162,10 +167,10 @@ func NewProject(p *Project) error {
|
||||
|
||||
// GetProjectByID returns the projects in a repository
|
||||
func GetProjectByID(id int64) (*Project, error) {
|
||||
return getProjectByID(x, id)
|
||||
return getProjectByID(db.DefaultContext().Engine(), id)
|
||||
}
|
||||
|
||||
func getProjectByID(e Engine, id int64) (*Project, error) {
|
||||
func getProjectByID(e db.Engine, id int64) (*Project, error) {
|
||||
p := new(Project)
|
||||
|
||||
has, err := e.ID(id).Get(p)
|
||||
@@ -180,10 +185,10 @@ func getProjectByID(e Engine, id int64) (*Project, error) {
|
||||
|
||||
// UpdateProject updates project properties
|
||||
func UpdateProject(p *Project) error {
|
||||
return updateProject(x, p)
|
||||
return updateProject(db.DefaultContext().Engine(), p)
|
||||
}
|
||||
|
||||
func updateProject(e Engine, p *Project) error {
|
||||
func updateProject(e db.Engine, p *Project) error {
|
||||
_, err := e.ID(p.ID).Cols(
|
||||
"title",
|
||||
"description",
|
||||
@@ -191,7 +196,7 @@ func updateProject(e Engine, p *Project) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func updateRepositoryProjectCount(e Engine, repoID int64) error {
|
||||
func updateRepositoryProjectCount(e db.Engine, repoID int64) error {
|
||||
if _, err := e.Exec(builder.Update(
|
||||
builder.Eq{
|
||||
"`num_projects`": builder.Select("count(*)").From("`project`").
|
||||
@@ -215,7 +220,7 @@ func updateRepositoryProjectCount(e Engine, repoID int64) error {
|
||||
|
||||
// ChangeProjectStatusByRepoIDAndID toggles a project between opened and closed
|
||||
func ChangeProjectStatusByRepoIDAndID(repoID, projectID int64, isClosed bool) error {
|
||||
sess := x.NewSession()
|
||||
sess := db.DefaultContext().NewSession()
|
||||
defer sess.Close()
|
||||
if err := sess.Begin(); err != nil {
|
||||
return err
|
||||
@@ -239,7 +244,7 @@ func ChangeProjectStatusByRepoIDAndID(repoID, projectID int64, isClosed bool) er
|
||||
|
||||
// ChangeProjectStatus toggle a project between opened and closed
|
||||
func ChangeProjectStatus(p *Project, isClosed bool) error {
|
||||
sess := x.NewSession()
|
||||
sess := db.DefaultContext().NewSession()
|
||||
defer sess.Close()
|
||||
if err := sess.Begin(); err != nil {
|
||||
return err
|
||||
@@ -252,7 +257,7 @@ func ChangeProjectStatus(p *Project, isClosed bool) error {
|
||||
return sess.Commit()
|
||||
}
|
||||
|
||||
func changeProjectStatus(e Engine, p *Project, isClosed bool) error {
|
||||
func changeProjectStatus(e db.Engine, p *Project, isClosed bool) error {
|
||||
p.IsClosed = isClosed
|
||||
p.ClosedDateUnix = timeutil.TimeStampNow()
|
||||
count, err := e.ID(p.ID).Where("repo_id = ? AND is_closed = ?", p.RepoID, !isClosed).Cols("is_closed", "closed_date_unix").Update(p)
|
||||
@@ -268,7 +273,7 @@ func changeProjectStatus(e Engine, p *Project, isClosed bool) error {
|
||||
|
||||
// DeleteProjectByID deletes a project from a repository.
|
||||
func DeleteProjectByID(id int64) error {
|
||||
sess := x.NewSession()
|
||||
sess := db.DefaultContext().NewSession()
|
||||
defer sess.Close()
|
||||
if err := sess.Begin(); err != nil {
|
||||
return err
|
||||
@@ -281,7 +286,7 @@ func DeleteProjectByID(id int64) error {
|
||||
return sess.Commit()
|
||||
}
|
||||
|
||||
func deleteProjectByID(e Engine, id int64) error {
|
||||
func deleteProjectByID(e db.Engine, id int64) error {
|
||||
p, err := getProjectByID(e, id)
|
||||
if err != nil {
|
||||
if IsErrProjectNotExist(err) {
|
||||
|
Reference in New Issue
Block a user