Skip to content

Commit ea1ae15

Browse files
authored
Merge pull request #30 from ShanghaitechGeekPie/reward-fix
Fix setting reward for comments and displaying reward in profile
2 parents fef01e4 + ab3e905 commit ea1ae15

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

internal/controllers/reward/setcomment.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func SetComment(c *fiber.Ctx) error {
3838
}
3939

4040
comment := &models.Comment{}
41-
result := db.First(&comment, request.ID)
41+
result := db.Preload("User").First(&comment, request.ID)
4242
if result.Error != nil {
4343
return errors.Wrap(result.Error, errors.DatabaseError)
4444
}

pkg/queries/user.go

+23-10
Original file line numberDiff line numberDiff line change
@@ -347,29 +347,42 @@ func GetUserByID(db *gorm.DB, id uint) (*models.User, error) {
347347
return user, nil
348348
}
349349

350-
// id: 被查询用户的id
351-
// uid: 查询用户的id
352-
// ip: 查询用户的ip
353-
func GetProfile(db *gorm.DB, id uint, uid uint) (models.ProfileResponse, error) {
350+
func GetProfile(db *gorm.DB, queriedUserID uint, queryingUserID uint) (models.ProfileResponse, error) {
354351
if db == nil {
355352
db = database.GetDB()
356353
}
357-
user, err := GetUserByID(db, id)
354+
355+
user, err := GetUserByID(db, queriedUserID)
358356
if err != nil {
359357
return models.ProfileResponse{}, err
360358
}
359+
360+
displayInvitationCode := queryingUserID == queriedUserID
361+
displayReward := queryingUserID == queriedUserID
362+
363+
// don't query if not logged in
364+
if queryingUserID != 0 && queryingUserID != queriedUserID {
365+
queryingUser, err := GetUserByID(db, queryingUserID)
366+
if err != nil {
367+
return models.ProfileResponse{}, err
368+
}
369+
if queryingUser.IsAdmin || queryingUser.IsCommunityAdmin {
370+
displayReward = true
371+
}
372+
}
373+
361374
avatar := ""
362375
if user.Avatar != "" {
363376
avatar = fmt.Sprintf("https://%s/%s/avatar/%s", database.GetEndpoint(), database.MinioConf.Bucket, user.Avatar)
364377
}
365-
if user.IsAnonymous && id != uid {
366-
return models.ProfileResponse{ID: id, NickName: user.NickName, Avatar: avatar, IsAnonymous: user.IsAnonymous, IsAdmin: user.IsAdmin, IsCommunityAdmin: user.IsCommunityAdmin}, nil
378+
if user.IsAnonymous && queryingUserID != queriedUserID {
379+
return models.ProfileResponse{ID: user.ID, NickName: user.NickName, Avatar: avatar, IsAnonymous: user.IsAnonymous, IsAdmin: user.IsAdmin, IsCommunityAdmin: user.IsCommunityAdmin}, nil
367380
} else {
368-
r := models.ProfileResponse{ID: id, Email: user.Email, Year: user.Year, Grade: user.Grade, NickName: user.NickName, RealName: user.RealName, IsAnonymous: user.IsAnonymous, Avatar: avatar, IsAdmin: user.IsAdmin, IsCommunityAdmin: user.IsCommunityAdmin}
369-
if id == uid {
381+
r := models.ProfileResponse{ID: user.ID, Email: user.Email, Year: user.Year, Grade: user.Grade, NickName: user.NickName, RealName: user.RealName, IsAnonymous: user.IsAnonymous, Avatar: avatar, IsAdmin: user.IsAdmin, IsCommunityAdmin: user.IsCommunityAdmin}
382+
if displayInvitationCode {
370383
r.InvitationCode = user.InvitationCode
371384
}
372-
if id == uid || user.IsAdmin || user.IsCommunityAdmin {
385+
if displayReward {
373386
r.Reward = user.Reward
374387
} else {
375388
r.Reward = -1

0 commit comments

Comments
 (0)