Merge pull request #2 from Amnesia-debug/perf/get-username-from-token

perf:减少PublishVideo中的数据库查询
This commit is contained in:
Chaoqian Xian
2026-03-21 17:35:37 +08:00
committed by GitHub
2 changed files with 16 additions and 2 deletions

View File

@@ -124,3 +124,17 @@ func GetAccountID(c *gin.Context) (uint, error) {
return accountID, nil
}
func GetUsername(c *gin.Context) (string, error) {
val, exists := c.Get("username")
if !exists {
return "", errors.New("username not found")
}
username, ok := val.(string)
if !ok {
return "", errors.New("username has invalid type")
}
return username, nil
}

View File

@@ -38,14 +38,14 @@ func (vh *VideoHandler) PublishVideo(c *gin.Context) {
c.JSON(400, gin.H{"error": err.Error()})
return
}
user, err := vh.accountService.FindByID(c.Request.Context(), authorId)
username, err := jwt.GetUsername(c)
if err != nil {
c.JSON(400, gin.H{"error": err.Error()})
return
}
video := &Video{
AuthorID: authorId,
Username: user.Username,
Username: username,
Title: req.Title,
Description: req.Description,
PlayURL: req.PlayURL,