feat(*): 工作台界面 - 优化插件中心、管理侧栏及画布与短剧列表

This commit is contained in:
ddCat
2026-08-22 11:35:23 +08:00
parent 9327b75c2e
commit c670ebca90
13 changed files with 792 additions and 179 deletions

View File

@@ -1,7 +1,9 @@
package handler
import (
"fmt"
"net/http"
"strconv"
"infinite-canvas/backend/internal/service"
@@ -29,12 +31,33 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
failService(c, err)
return
}
projects, err := svc.ListProjects(user.ID)
pageParam, hasPage := c.GetQuery("page")
pageSizeParam, hasPageSize := c.GetQuery("page_size")
if !hasPage && !hasPageSize {
projects, err := svc.ListProjects(user.ID)
if err != nil {
failService(c, err)
return
}
ok(c, gin.H{"projects": projects})
return
}
page, err := parsePositiveQueryInt(pageParam, 1)
if err != nil {
fail(c, http.StatusBadRequest, err)
return
}
pageSize, err := parsePositiveQueryInt(pageSizeParam, 50)
if err != nil {
fail(c, http.StatusBadRequest, err)
return
}
projects, err := svc.ListProjectsPage(user.ID, page, pageSize)
if err != nil {
failService(c, err)
return
}
ok(c, gin.H{"projects": projects})
ok(c, projects)
})
r.POST("/projects", func(c *gin.Context) {
user, err := currentUser(c, svc)
@@ -713,3 +736,14 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
ok(c, gin.H{"asset": asset})
})
}
func parsePositiveQueryInt(value string, fallback int) (int, error) {
if value == "" {
return fallback, nil
}
parsed, err := strconv.Atoi(value)
if err != nil || parsed < 1 {
return 0, fmt.Errorf("query parameter must be a positive integer")
}
return parsed, nil
}