Skip to content

Commit

Permalink
Merge pull request #36 from ShanghaitechGeekPie/fix-register
Browse files Browse the repository at this point in the history
fix(queries.Register): reward inviter after checking email availability
  • Loading branch information
Prince213 authored Jun 7, 2024
2 parents 2b903f9 + 7b70858 commit e1bfe33
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions pkg/queries/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,22 +117,6 @@ func Register(db *gorm.DB, u *models.User, invitation_code string) error {
return errors.New(errors.InvalidArgument)
}

// check if the invitation code is valid
if invitation_code != "" {
inviter, err := GetUserByInvitationCode(db, invitation_code)
if err != nil {
if errors.Is(err, errors.UserNotExists) {
return errors.New(errors.InvitationCodeInvalid)
}
return err
}

u.InvitedByUserID = inviter.ID
// TODO: only once for the inviter?
inviter.Reward += 100
db.Save(inviter)
}

// 检查邮箱是否已存在
user := &models.User{}
result := db.Where("email = ?", u.Email).Take(user)
Expand Down Expand Up @@ -160,6 +144,23 @@ func Register(db *gorm.DB, u *models.User, invitation_code string) error {
}
u.InvitationCode = code

// check if the invitation code is valid
if invitation_code != "" {
inviter, err := GetUserByInvitationCode(db, invitation_code)
if err != nil {
if errors.Is(err, errors.UserNotExists) {
return errors.New(errors.InvitationCodeInvalid)
}
return err
}

u.InvitedByUserID = inviter.ID
inviter.Reward += 100
if err = db.Select("reward").Save(inviter).Error; err != nil {
return errors.Wrap(err, errors.DatabaseError)
}
}

if err = db.Create(u).Error; err != nil {
return errors.Wrap(err, errors.DatabaseError)
}
Expand Down

0 comments on commit e1bfe33

Please sign in to comment.