From f122a6170d13e4ca3a3057a4ae61782d57cf2a26 Mon Sep 17 00:00:00 2001 From: Leon <147289645+LeoninCS@users.noreply.github.com> Date: Tue, 9 Dec 2025 15:47:55 +0800 Subject: [PATCH] feat(account): use token instead of id for rename --- internal/account/handler.go | 23 +++++++++++++++++++++-- internal/account/repo.go | 2 +- internal/account/service.go | 4 ++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/internal/account/handler.go b/internal/account/handler.go index ff768df..1977572 100644 --- a/internal/account/handler.go +++ b/internal/account/handler.go @@ -1,6 +1,8 @@ package account import ( + "errors" + "github.com/gin-gonic/gin" ) @@ -83,13 +85,18 @@ func (h *AccountHandler) CreateAccount(c *gin.Context) { c.JSON(200, gin.H{"message": "account created"}) } -func (h *AccountHandler) RenameByID(c *gin.Context) { +func (h *AccountHandler) Rename(c *gin.Context) { var req RenameByIDRequest if err := c.ShouldBindJSON(&req); err != nil { c.JSON(400, gin.H{"error": err.Error()}) return } - if err := h.accountService.RenameByID(req.ID, req.NewUsername); err != nil { + accountID, err := getAccountID(c) + if err != nil { + c.JSON(400, gin.H{"error": err.Error()}) + return + } + if err := h.accountService.Rename(accountID, req.NewUsername); err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } @@ -163,3 +170,15 @@ func (h *AccountHandler) Logout(c *gin.Context) { } c.JSON(200, LogoutResponse{}) } + +func getAccountID(c *gin.Context) (uint, error) { + value, exists := c.Get("accountID") + if !exists { + return 0, errors.New("accountID not found") + } + id, ok := value.(uint) + if !ok { + return 0, errors.New("accountID has invalid type") + } + return id, nil +} diff --git a/internal/account/repo.go b/internal/account/repo.go index f40d0da..b0c340a 100644 --- a/internal/account/repo.go +++ b/internal/account/repo.go @@ -19,7 +19,7 @@ func (ar *AccountRepository) CreateAccount(account *Account) error { return nil } -func (ar *AccountRepository) RenameByID(id uint, newUsername string) error { +func (ar *AccountRepository) Rename(id uint, newUsername string) error { if err := ar.db.Model(&Account{}).Where("id = ?", id).Update("username", newUsername).Error; err != nil { return err } diff --git a/internal/account/service.go b/internal/account/service.go index 556ee4b..f13d033 100644 --- a/internal/account/service.go +++ b/internal/account/service.go @@ -27,8 +27,8 @@ func (as *AccountService) CreateAccount(account *Account) error { return nil } -func (as *AccountService) RenameByID(id uint, newUsername string) error { - if err := as.accountRepository.RenameByID(id, newUsername); err != nil { +func (as *AccountService) Rename(accountID uint, newUsername string) error { + if err := as.accountRepository.Rename(accountID, newUsername); err != nil { return err } return nil