Unknown 11 years ago
parent
commit
53a17bbd24
1 changed files with 11 additions and 2 deletions
  1. 11 2
      models/repo.go

+ 11 - 2
models/repo.go

@@ -424,9 +424,18 @@ type Watch struct {
 // Watch or unwatch repository.
 func WatchRepo(userId, repoId int64, watch bool) (err error) {
 	if watch {
-		_, err = orm.Insert(&Watch{RepoId: repoId, UserId: userId})
+		if _, err = orm.Insert(&Watch{RepoId: repoId, UserId: userId}); err != nil {
+			return err
+		}
+
+		rawSql := "UPDATE `repository` SET num_watches = num_watches + 1 WHERE id = ?"
+		_, err = orm.Exec(rawSql, repoId)
 	} else {
-		_, err = orm.Delete(&Watch{0, repoId, userId})
+		if _, err = orm.Delete(&Watch{0, repoId, userId}); err != nil {
+			return err
+		}
+		rawSql := "UPDATE `repository` SET num_watches = num_watches - 1 WHERE id = ?"
+		_, err = orm.Exec(rawSql, repoId)
 	}
 	return err
 }