diff options
author | Ethan Koenig <etk39@cornell.edu> | 2017-03-11 03:46:53 -0500 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-03-11 16:46:53 +0800 |
commit | 3803f257fb5cfa3419f0d91ccbae1c128f0fcca1 (patch) | |
tree | f771af0252ae57f9be20ff56952a34aeb9c820ab /models/user.go | |
parent | 1e3548b7e764c60aad2eb315a65e146264c11a7d (diff) | |
download | gitea-3803f257fb5cfa3419f0d91ccbae1c128f0fcca1.tar.gz gitea-3803f257fb5cfa3419f0d91ccbae1c128f0fcca1.zip |
Move user_follow to separate file (#1210)
Also add unit tests
Diffstat (limited to 'models/user.go')
-rw-r--r-- | models/user.go | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/models/user.go b/models/user.go index 54a60acd84..a7e22659ec 100644 --- a/models/user.go +++ b/models/user.go @@ -1292,78 +1292,6 @@ func SearchUserByName(opts *SearchUserOptions) (users []*User, _ int64, _ error) return users, count, sess.Find(&users) } -// ___________ .__ .__ -// \_ _____/___ | | | | ______ _ __ -// | __)/ _ \| | | | / _ \ \/ \/ / -// | \( <_> ) |_| |_( <_> ) / -// \___ / \____/|____/____/\____/ \/\_/ -// \/ - -// Follow represents relations of user and his/her followers. -type Follow struct { - ID int64 `xorm:"pk autoincr"` - UserID int64 `xorm:"UNIQUE(follow)"` - FollowID int64 `xorm:"UNIQUE(follow)"` -} - -// IsFollowing returns true if user is following followID. -func IsFollowing(userID, followID int64) bool { - has, _ := x.Get(&Follow{UserID: userID, FollowID: followID}) - return has -} - -// FollowUser marks someone be another's follower. -func FollowUser(userID, followID int64) (err error) { - if userID == followID || IsFollowing(userID, followID) { - return nil - } - - sess := x.NewSession() - defer sessionRelease(sess) - if err = sess.Begin(); err != nil { - return err - } - - if _, err = sess.Insert(&Follow{UserID: userID, FollowID: followID}); err != nil { - return err - } - - if _, err = sess.Exec("UPDATE `user` SET num_followers = num_followers + 1 WHERE id = ?", followID); err != nil { - return err - } - - if _, err = sess.Exec("UPDATE `user` SET num_following = num_following + 1 WHERE id = ?", userID); err != nil { - return err - } - return sess.Commit() -} - -// UnfollowUser unmarks someone as another's follower. -func UnfollowUser(userID, followID int64) (err error) { - if userID == followID || !IsFollowing(userID, followID) { - return nil - } - - sess := x.NewSession() - defer sessionRelease(sess) - if err = sess.Begin(); err != nil { - return err - } - - if _, err = sess.Delete(&Follow{UserID: userID, FollowID: followID}); err != nil { - return err - } - - if _, err = sess.Exec("UPDATE `user` SET num_followers = num_followers - 1 WHERE id = ?", followID); err != nil { - return err - } - - if _, err = sess.Exec("UPDATE `user` SET num_following = num_following - 1 WHERE id = ?", userID); err != nil { - return err - } - return sess.Commit() -} - // GetStarredRepos returns the repos starred by a particular user func GetStarredRepos(userID int64, private bool) ([]*Repository, error) { sess := x.Where("star.uid=?", userID). |