diff options
Diffstat (limited to 'models/topic.go')
-rw-r--r-- | models/topic.go | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/models/topic.go b/models/topic.go index 52f9a274a7..4b219cc0eb 100644 --- a/models/topic.go +++ b/models/topic.go @@ -9,16 +9,15 @@ import ( "regexp" "strings" + "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/timeutil" "xorm.io/builder" ) func init() { - tables = append(tables, - new(Topic), - new(RepoTopic), - ) + db.RegisterModel(new(Topic)) + db.RegisterModel(new(RepoTopic)) } var topicPattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-]*$`) @@ -89,7 +88,7 @@ func SanitizeAndValidateTopics(topics []string) (validTopics, invalidTopics []st // GetTopicByName retrieves topic by name func GetTopicByName(name string) (*Topic, error) { var topic Topic - if has, err := x.Where("name = ?", name).Get(&topic); err != nil { + if has, err := db.DefaultContext().Engine().Where("name = ?", name).Get(&topic); err != nil { return nil, err } else if !has { return nil, ErrTopicNotExist{name} @@ -99,7 +98,7 @@ func GetTopicByName(name string) (*Topic, error) { // addTopicByNameToRepo adds a topic name to a repo and increments the topic count. // Returns topic after the addition -func addTopicByNameToRepo(e Engine, repoID int64, topicName string) (*Topic, error) { +func addTopicByNameToRepo(e db.Engine, repoID int64, topicName string) (*Topic, error) { var topic Topic has, err := e.Where("name = ?", topicName).Get(&topic) if err != nil { @@ -129,7 +128,7 @@ func addTopicByNameToRepo(e Engine, repoID int64, topicName string) (*Topic, err } // removeTopicFromRepo remove a topic from a repo and decrements the topic repo count -func removeTopicFromRepo(e Engine, repoID int64, topic *Topic) error { +func removeTopicFromRepo(e db.Engine, repoID int64, topic *Topic) error { topic.RepoCount-- if _, err := e.ID(topic.ID).Cols("repo_count").Update(topic); err != nil { return err @@ -146,7 +145,7 @@ func removeTopicFromRepo(e Engine, repoID int64, topic *Topic) error { } // removeTopicsFromRepo remove all topics from the repo and decrements respective topics repo count -func removeTopicsFromRepo(e Engine, repoID int64) error { +func removeTopicsFromRepo(e db.Engine, repoID int64) error { _, err := e.Where( builder.In("id", builder.Select("topic_id").From("repo_topic").Where(builder.Eq{"repo_id": repoID}), @@ -185,7 +184,7 @@ func (opts *FindTopicOptions) toConds() builder.Cond { // FindTopics retrieves the topics via FindTopicOptions func FindTopics(opts *FindTopicOptions) ([]*Topic, int64, error) { - sess := x.Select("topic.*").Where(opts.toConds()) + sess := db.DefaultContext().Engine().Select("topic.*").Where(opts.toConds()) if opts.RepoID > 0 { sess.Join("INNER", "repo_topic", "repo_topic.topic_id = topic.id") } @@ -199,7 +198,7 @@ func FindTopics(opts *FindTopicOptions) ([]*Topic, int64, error) { // CountTopics counts the number of topics matching the FindTopicOptions func CountTopics(opts *FindTopicOptions) (int64, error) { - sess := x.Where(opts.toConds()) + sess := db.DefaultContext().Engine().Where(opts.toConds()) if opts.RepoID > 0 { sess.Join("INNER", "repo_topic", "repo_topic.topic_id = topic.id") } @@ -208,10 +207,10 @@ func CountTopics(opts *FindTopicOptions) (int64, error) { // GetRepoTopicByName retrieves topic from name for a repo if it exist func GetRepoTopicByName(repoID int64, topicName string) (*Topic, error) { - return getRepoTopicByName(x, repoID, topicName) + return getRepoTopicByName(db.DefaultContext().Engine(), repoID, topicName) } -func getRepoTopicByName(e Engine, repoID int64, topicName string) (*Topic, error) { +func getRepoTopicByName(e db.Engine, repoID int64, topicName string) (*Topic, error) { cond := builder.NewCond() var topic Topic cond = cond.And(builder.Eq{"repo_topic.repo_id": repoID}).And(builder.Eq{"topic.name": topicName}) @@ -226,7 +225,7 @@ func getRepoTopicByName(e Engine, repoID int64, topicName string) (*Topic, error // AddTopic adds a topic name to a repository (if it does not already have it) func AddTopic(repoID int64, topicName string) (*Topic, error) { - sess := x.NewSession() + sess := db.DefaultContext().NewSession() defer sess.Close() if err := sess.Begin(); err != nil { return nil, err @@ -273,7 +272,7 @@ func DeleteTopic(repoID int64, topicName string) (*Topic, error) { return nil, nil } - err = removeTopicFromRepo(x, repoID, topic) + err = removeTopicFromRepo(db.DefaultContext().Engine(), repoID, topic) return topic, err } @@ -287,7 +286,7 @@ func SaveTopics(repoID int64, topicNames ...string) error { return err } - sess := x.NewSession() + sess := db.DefaultContext().NewSession() defer sess.Close() if err := sess.Begin(); err != nil { |