perf(platform): 短剧创作工作台 - 拆分长篇项目接口并优化章节与素材分页
This commit is contained in:
@@ -95,6 +95,36 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
}
|
||||
ok(c, detail)
|
||||
})
|
||||
r.GET("/projects/:id/core", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
core, err := svc.ProjectCore(user.ID, c.Param("id"))
|
||||
if err != nil {
|
||||
if service.IsProjectNotFound(err) {
|
||||
fail(c, http.StatusNotFound, err)
|
||||
return
|
||||
}
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, core)
|
||||
})
|
||||
r.GET("/projects/:id/overview", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
overview, err := svc.ProjectOverview(user.ID, c.Param("id"))
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, overview)
|
||||
})
|
||||
r.PATCH("/projects/:id", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
@@ -157,6 +187,19 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
}
|
||||
ok(c, gin.H{"unit": unit})
|
||||
})
|
||||
r.GET("/projects/:id/units", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
units, err := svc.ProjectUnitSummaries(user.ID, c.Param("id"))
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, units)
|
||||
})
|
||||
r.GET("/projects/:id/units/:unitId", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
@@ -174,6 +217,19 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
}
|
||||
ok(c, gin.H{"unit": unit})
|
||||
})
|
||||
r.GET("/projects/:id/units/:unitId/workspace", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
workspace, err := svc.ProjectUnitWorkspace(user.ID, c.Param("id"), c.Param("unitId"))
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, workspace)
|
||||
})
|
||||
r.POST("/projects/:id/units/import", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
@@ -318,12 +374,60 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
}
|
||||
ok(c, gin.H{"canvasId": c.Param("canvasId")})
|
||||
})
|
||||
r.GET("/projects/:id/canvases", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
page, err := parsePositiveQueryInt(c.Query("page"), 1)
|
||||
if err != nil {
|
||||
fail(c, http.StatusBadRequest, err)
|
||||
return
|
||||
}
|
||||
pageSize, err := parsePositiveQueryInt(c.Query("page_size"), 40)
|
||||
if err != nil {
|
||||
fail(c, http.StatusBadRequest, err)
|
||||
return
|
||||
}
|
||||
result, err := svc.ProjectCanvasesPage(user.ID, c.Param("id"), page, pageSize)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, result)
|
||||
})
|
||||
r.GET("/projects/:id/assets", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
pageParam, hasPage := c.GetQuery("page")
|
||||
pageSizeParam, hasPageSize := c.GetQuery("page_size")
|
||||
if hasPage || hasPageSize {
|
||||
page, pageErr := parsePositiveQueryInt(pageParam, 1)
|
||||
if pageErr != nil {
|
||||
fail(c, http.StatusBadRequest, pageErr)
|
||||
return
|
||||
}
|
||||
pageSize, pageSizeErr := parsePositiveQueryInt(pageSizeParam, 40)
|
||||
if pageSizeErr != nil {
|
||||
fail(c, http.StatusBadRequest, pageSizeErr)
|
||||
return
|
||||
}
|
||||
var folderID *string
|
||||
if value, present := c.GetQuery("folder_id"); present {
|
||||
folderID = &value
|
||||
}
|
||||
assets, pageErr := svc.ProjectAssetsPage(user.ID, c.Param("id"), page, pageSize, c.Query("category"), c.Query("media_type"), c.Query("status"), folderID, c.Query("q"))
|
||||
if pageErr != nil {
|
||||
failService(c, pageErr)
|
||||
return
|
||||
}
|
||||
ok(c, assets)
|
||||
return
|
||||
}
|
||||
assets, err := svc.FilterProjectAssets(user.ID, c.Param("id"), service.ProjectAssetFilter{Category: c.Query("category"), MediaType: c.Query("mediaType"), Status: c.Query("status"), Usage: c.Query("usage")})
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
@@ -759,6 +863,29 @@ func RegisterProjectRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
}
|
||||
ok(c, gin.H{"candidates": candidates})
|
||||
})
|
||||
r.GET("/projects/:id/asset-candidates", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
page, err := parsePositiveQueryInt(c.Query("page"), 1)
|
||||
if err != nil {
|
||||
fail(c, http.StatusBadRequest, err)
|
||||
return
|
||||
}
|
||||
pageSize, err := parsePositiveQueryInt(c.Query("page_size"), 100)
|
||||
if err != nil {
|
||||
fail(c, http.StatusBadRequest, err)
|
||||
return
|
||||
}
|
||||
result, err := svc.ProjectAssetCandidatesPage(user.ID, c.Param("id"), page, pageSize, c.Query("unit_id"), c.Query("status"), c.Query("category"))
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, result)
|
||||
})
|
||||
r.POST("/projects/:id/asset-candidates/:candidateId/confirm", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user