work on 1714

release/v1.15
Unknwon 2015-10-05 09:54:55 -04:00
parent db00aa7653
commit ea6c6bc20a
1 changed files with 8 additions and 4 deletions

View File

@ -1601,15 +1601,19 @@ type Watch struct {
RepoID int64 `xorm:"UNIQUE(watch)"` RepoID int64 `xorm:"UNIQUE(watch)"`
} }
func isWatching(e Engine, uid, repoId int64) bool {
has, _ := e.Get(&Watch{0, uid, repoId})
return has
}
// IsWatching checks if user has watched given repository. // IsWatching checks if user has watched given repository.
func IsWatching(uid, repoId int64) bool { func IsWatching(uid, repoId int64) bool {
has, _ := x.Get(&Watch{0, uid, repoId}) return isWatching(x, uid, repoId)
return has
} }
func watchRepo(e Engine, uid, repoId int64, watch bool) (err error) { func watchRepo(e Engine, uid, repoId int64, watch bool) (err error) {
if watch { if watch {
if IsWatching(uid, repoId) { if isWatching(e, uid, repoId) {
return nil return nil
} }
if _, err = e.Insert(&Watch{RepoID: repoId, UserID: uid}); err != nil { if _, err = e.Insert(&Watch{RepoID: repoId, UserID: uid}); err != nil {
@ -1617,7 +1621,7 @@ func watchRepo(e Engine, uid, repoId int64, watch bool) (err error) {
} }
_, err = e.Exec("UPDATE `repository` SET num_watches = num_watches + 1 WHERE id = ?", repoId) _, err = e.Exec("UPDATE `repository` SET num_watches = num_watches + 1 WHERE id = ?", repoId)
} else { } else {
if !IsWatching(uid, repoId) { if !isWatching(e, uid, repoId) {
return nil return nil
} }
if _, err = e.Delete(&Watch{0, uid, repoId}); err != nil { if _, err = e.Delete(&Watch{0, uid, repoId}); err != nil {