@@ -2,8 +2,8 @@ package users
22
33import (
44 "errors"
5- "github.com/jinzhu/gorm"
65 "github.com/gothinkster/golang-gin-realworld-example-app/common"
6+ "github.com/jinzhu/gorm"
77 "golang.org/x/crypto/bcrypt"
88)
99
@@ -27,8 +27,9 @@ type UserModel struct {
2727// DB schema looks like: id, created_at, updated_at, deleted_at, following_id, followed_by_id.
2828//
2929// Retrieve them by:
30- // db.Where(FollowModel{ FollowingID: v.ID, FollowedByID: u.ID, }).First(&follow)
31- // db.Where(FollowModel{ FollowedByID: u.ID, }).Find(&follows)
30+ //
31+ // db.Where(FollowModel{ FollowingID: v.ID, FollowedByID: u.ID, }).First(&follow)
32+ // db.Where(FollowModel{ FollowedByID: u.ID, }).Find(&follows)
3233//
3334// More details about gorm.Model: http://jinzhu.me/gorm/models.html#conventions
3435type FollowModel struct {
@@ -50,7 +51,8 @@ func AutoMigrate() {
5051// What's bcrypt? https://en.wikipedia.org/wiki/Bcrypt
5152// Golang bcrypt doc: https://godoc.org/golang.org/x/crypto/bcrypt
5253// You can change the value in bcrypt.DefaultCost to adjust the security index.
53- // err := userModel.setPassword("password0")
54+ //
55+ // err := userModel.setPassword("password0")
5456func (u * UserModel ) setPassword (password string ) error {
5557 if len (password ) == 0 {
5658 return errors .New ("password should not be empty!" )
@@ -63,15 +65,17 @@ func (u *UserModel) setPassword(password string) error {
6365}
6466
6567// Database will only save the hashed string, you should check it by util function.
66- // if err := serModel.checkPassword("password0"); err != nil { password error }
68+ //
69+ // if err := serModel.checkPassword("password0"); err != nil { password error }
6770func (u * UserModel ) checkPassword (password string ) error {
6871 bytePassword := []byte (password )
6972 byteHashedPassword := []byte (u .PasswordHash )
7073 return bcrypt .CompareHashAndPassword (byteHashedPassword , bytePassword )
7174}
7275
7376// You could input the conditions and it will return an UserModel in database with error info.
74- // userModel, err := FindOneUser(&UserModel{Username: "username0"})
77+ //
78+ // userModel, err := FindOneUser(&UserModel{Username: "username0"})
7579func FindOneUser (condition interface {}) (UserModel , error ) {
7680 db := common .GetDB ()
7781 var model UserModel
@@ -80,23 +84,26 @@ func FindOneUser(condition interface{}) (UserModel, error) {
8084}
8185
8286// You could input an UserModel which will be saved in database returning with error info
83- // if err := SaveOne(&userModel); err != nil { ... }
87+ //
88+ // if err := SaveOne(&userModel); err != nil { ... }
8489func SaveOne (data interface {}) error {
8590 db := common .GetDB ()
8691 err := db .Save (data ).Error
8792 return err
8893}
8994
9095// You could update properties of an UserModel to database returning with error info.
91- // err := db.Model(userModel).Update(UserModel{Username: "wangzitian0"}).Error
96+ //
97+ // err := db.Model(userModel).Update(UserModel{Username: "wangzitian0"}).Error
9298func (model * UserModel ) Update (data interface {}) error {
9399 db := common .GetDB ()
94100 err := db .Model (model ).Update (data ).Error
95101 return err
96102}
97103
98104// You could add a following relationship as userModel1 following userModel2
99- // err = userModel1.following(userModel2)
105+ //
106+ // err = userModel1.following(userModel2)
100107func (u UserModel ) following (v UserModel ) error {
101108 db := common .GetDB ()
102109 var follow FollowModel
@@ -108,7 +115,8 @@ func (u UserModel) following(v UserModel) error {
108115}
109116
110117// You could check whether userModel1 following userModel2
111- // followingBool = myUserModel.isFollowing(self.UserModel)
118+ //
119+ // followingBool = myUserModel.isFollowing(self.UserModel)
112120func (u UserModel ) isFollowing (v UserModel ) bool {
113121 db := common .GetDB ()
114122 var follow FollowModel
@@ -120,7 +128,8 @@ func (u UserModel) isFollowing(v UserModel) bool {
120128}
121129
122130// You could delete a following relationship as userModel1 following userModel2
123- // err = userModel1.unFollowing(userModel2)
131+ //
132+ // err = userModel1.unFollowing(userModel2)
124133func (u UserModel ) unFollowing (v UserModel ) error {
125134 db := common .GetDB ()
126135 err := db .Where (FollowModel {
@@ -131,7 +140,8 @@ func (u UserModel) unFollowing(v UserModel) error {
131140}
132141
133142// You could get a following list of userModel
134- // followings := userModel.GetFollowings()
143+ //
144+ // followings := userModel.GetFollowings()
135145func (u UserModel ) GetFollowings () []UserModel {
136146 db := common .GetDB ()
137147 tx := db .Begin ()
@@ -142,7 +152,7 @@ func (u UserModel) GetFollowings() []UserModel {
142152 }).Find (& follows )
143153 for _ , follow := range follows {
144154 var userModel UserModel
145- tx .Model (& follow ).Related (& userModel , "Following" )
155+ tx .Model (& follow ).Related (& userModel , "Following" ) // #nosec G601
146156 followings = append (followings , userModel )
147157 }
148158 tx .Commit ()
0 commit comments