summaryrefslogtreecommitdiffstats
path: root/models/star.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2021-11-21 23:41:00 +0800
committerGitHub <noreply@github.com>2021-11-21 23:41:00 +0800
commitd710af6669654f27f02b69d7ef1ba563e7d58a90 (patch)
tree9727f468a570106293dc90beb70035180bbb7e8e /models/star.go
parent0add627182388ac63fd04b94cdf912fb87fd0326 (diff)
downloadgitea-d710af6669654f27f02b69d7ef1ba563e7d58a90.tar.gz
gitea-d710af6669654f27f02b69d7ef1ba563e7d58a90.zip
Remove NewSession method from db.Engine interface (#17577)
* Remove NewSession method from db.Engine interface * Fix bug * Some improvements * Fix bug * Fix test * Use XXXBean instead of XXXExample
Diffstat (limited to 'models/star.go')
-rw-r--r--models/star.go26
1 files changed, 13 insertions, 13 deletions
diff --git a/models/star.go b/models/star.go
index ee7791513d..baf724d7e0 100644
--- a/models/star.go
+++ b/models/star.go
@@ -23,44 +23,44 @@ func init() {
// StarRepo or unstar repository.
func StarRepo(userID, repoID int64, star bool) error {
- sess := db.NewSession(db.DefaultContext)
- defer sess.Close()
-
- if err := sess.Begin(); err != nil {
+ ctx, committer, err := db.TxContext()
+ if err != nil {
return err
}
+ defer committer.Close()
+ staring := isStaring(db.GetEngine(ctx), userID, repoID)
if star {
- if isStaring(sess, userID, repoID) {
+ if staring {
return nil
}
- if _, err := sess.Insert(&Star{UID: userID, RepoID: repoID}); err != nil {
+ if err := db.Insert(ctx, &Star{UID: userID, RepoID: repoID}); err != nil {
return err
}
- if _, err := sess.Exec("UPDATE `repository` SET num_stars = num_stars + 1 WHERE id = ?", repoID); err != nil {
+ if _, err := db.Exec(ctx, "UPDATE `repository` SET num_stars = num_stars + 1 WHERE id = ?", repoID); err != nil {
return err
}
- if _, err := sess.Exec("UPDATE `user` SET num_stars = num_stars + 1 WHERE id = ?", userID); err != nil {
+ if _, err := db.Exec(ctx, "UPDATE `user` SET num_stars = num_stars + 1 WHERE id = ?", userID); err != nil {
return err
}
} else {
- if !isStaring(sess, userID, repoID) {
+ if !staring {
return nil
}
- if _, err := sess.Delete(&Star{UID: userID, RepoID: repoID}); err != nil {
+ if _, err := db.DeleteByBean(ctx, &Star{UID: userID, RepoID: repoID}); err != nil {
return err
}
- if _, err := sess.Exec("UPDATE `repository` SET num_stars = num_stars - 1 WHERE id = ?", repoID); err != nil {
+ if _, err := db.Exec(ctx, "UPDATE `repository` SET num_stars = num_stars - 1 WHERE id = ?", repoID); err != nil {
return err
}
- if _, err := sess.Exec("UPDATE `user` SET num_stars = num_stars - 1 WHERE id = ?", userID); err != nil {
+ if _, err := db.Exec(ctx, "UPDATE `user` SET num_stars = num_stars - 1 WHERE id = ?", userID); err != nil {
return err
}
}
- return sess.Commit()
+ return committer.Commit()
}
// IsStaring checks if user has starred given repository.