From 53d856c7a739e486d1ab024d3bf4a0563b70f023 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 2 Mar 2025 21:04:24 +0800 Subject: [PATCH] :bug: Fix activating badges --- pkg/internal/grpc/user.go | 3 ++- pkg/internal/services/badges.go | 4 ++-- pkg/internal/web/api/accounts_api.go | 4 ++-- pkg/internal/web/api/userinfo_api.go | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pkg/internal/grpc/user.go b/pkg/internal/grpc/user.go index d408b94..40b9fe7 100644 --- a/pkg/internal/grpc/user.go +++ b/pkg/internal/grpc/user.go @@ -3,6 +3,7 @@ package grpc import ( "context" "fmt" + "git.solsynth.dev/hypernet/nexus/pkg/proto" "git.solsynth.dev/hypernet/passport/pkg/authkit/models" localCache "git.solsynth.dev/hypernet/passport/pkg/internal/cache" @@ -46,7 +47,7 @@ func (v *App) GetUser(ctx context.Context, request *proto.GetUserRequest) (*prot if err := tx. Preload("Profile"). Preload("Badges", func(db *gorm.DB) *gorm.DB { - return db.Order("badges.type DESC") + return db.Order("badges.is_active DESC, badges.type DESC") }). First(&account).Error; err != nil { return nil, status.Errorf(codes.NotFound, fmt.Sprintf("requested user with id %d was not found", request.GetUserId())) diff --git a/pkg/internal/services/badges.go b/pkg/internal/services/badges.go index 830719f..aba2426 100644 --- a/pkg/internal/services/badges.go +++ b/pkg/internal/services/badges.go @@ -18,11 +18,11 @@ func ActiveBadge(badge models.Badge) error { accountId := badge.AccountID tx := database.C.Begin() - if err := tx.Model(&badge).Where("account_id = ?", accountId).Update("is_active", false).Error; err != nil { + if err := tx.Model(&models.Badge{}).Where("account_id = ?", accountId).Update("is_active", false).Error; err != nil { tx.Rollback() return err } - if err := tx.Model(&badge).Where("id = ?", badge.ID).Update("is_active", true).Error; err != nil { + if err := tx.Model(&models.Badge{}).Where("id = ?", badge.ID).Update("is_active", true).Error; err != nil { tx.Rollback() return err } diff --git a/pkg/internal/web/api/accounts_api.go b/pkg/internal/web/api/accounts_api.go index c69747d..33d1170 100644 --- a/pkg/internal/web/api/accounts_api.go +++ b/pkg/internal/web/api/accounts_api.go @@ -50,7 +50,7 @@ func getUserInBatch(c *fiber.Ctx) error { if err := tx. Preload("Profile"). Preload("Badges", func(db *gorm.DB) *gorm.DB { - return db.Order("badges.type DESC") + return db.Order("badges.is_active DESC, badges.type DESC") }). Find(&accounts).Error; err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) @@ -148,7 +148,7 @@ func updateUserinfo(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusInternalServerError, err.Error()) } - var links = make(map[string]any) + links := make(map[string]any) for k, v := range data.Links { links[k] = v } diff --git a/pkg/internal/web/api/userinfo_api.go b/pkg/internal/web/api/userinfo_api.go index c283dcb..ffc6f4c 100644 --- a/pkg/internal/web/api/userinfo_api.go +++ b/pkg/internal/web/api/userinfo_api.go @@ -44,7 +44,7 @@ func getOtherUserinfo(c *fiber.Ctx) error { if err := tx. Preload("Profile"). Preload("Badges", func(db *gorm.DB) *gorm.DB { - return db.Order("badges.type DESC") + return db.Order("badges.is_active DESC, badges.type DESC") }). First(&account).Error; err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error())