add article
This commit is contained in:
104
internal/infrastructure/http/routes/article_routes.go
Normal file
104
internal/infrastructure/http/routes/article_routes.go
Normal file
@@ -0,0 +1,104 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"tyapi-server/internal/infrastructure/http/handlers"
|
||||
sharedhttp "tyapi-server/internal/shared/http"
|
||||
"tyapi-server/internal/shared/middleware"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// ArticleRoutes 文章路由
|
||||
type ArticleRoutes struct {
|
||||
handler *handlers.ArticleHandler
|
||||
auth *middleware.JWTAuthMiddleware
|
||||
admin *middleware.AdminAuthMiddleware
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
// NewArticleRoutes 创建文章路由
|
||||
func NewArticleRoutes(
|
||||
handler *handlers.ArticleHandler,
|
||||
auth *middleware.JWTAuthMiddleware,
|
||||
admin *middleware.AdminAuthMiddleware,
|
||||
logger *zap.Logger,
|
||||
) *ArticleRoutes {
|
||||
return &ArticleRoutes{
|
||||
handler: handler,
|
||||
auth: auth,
|
||||
admin: admin,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
// Register 注册路由
|
||||
func (r *ArticleRoutes) Register(router *sharedhttp.GinRouter) {
|
||||
engine := router.GetEngine()
|
||||
|
||||
// ==================== 用户端路由 ====================
|
||||
// 文章相关路由 - 用户端
|
||||
articleGroup := engine.Group("/api/v1/articles")
|
||||
{
|
||||
// 公开路由 - 不需要认证
|
||||
articleGroup.GET("/:id", r.handler.GetArticleByID) // 获取文章详情
|
||||
articleGroup.GET("", r.handler.ListArticles) // 获取文章列表(支持筛选:标题、分类、摘要、标签、推荐状态)
|
||||
}
|
||||
|
||||
// 分类相关路由 - 用户端
|
||||
categoryGroup := engine.Group("/api/v1/article-categories")
|
||||
{
|
||||
// 公开路由 - 不需要认证
|
||||
categoryGroup.GET("", r.handler.ListCategories) // 获取分类列表
|
||||
categoryGroup.GET("/:id", r.handler.GetCategoryByID) // 获取分类详情
|
||||
}
|
||||
|
||||
// 标签相关路由 - 用户端
|
||||
tagGroup := engine.Group("/api/v1/article-tags")
|
||||
{
|
||||
// 公开路由 - 不需要认证
|
||||
tagGroup.GET("", r.handler.ListTags) // 获取标签列表
|
||||
tagGroup.GET("/:id", r.handler.GetTagByID) // 获取标签详情
|
||||
}
|
||||
|
||||
// ==================== 管理员端路由 ====================
|
||||
// 管理员文章管理路由
|
||||
adminArticleGroup := engine.Group("/api/v1/admin/articles")
|
||||
adminArticleGroup.Use(r.admin.Handle())
|
||||
{
|
||||
// 统计信息
|
||||
adminArticleGroup.GET("/stats", r.handler.GetArticleStats) // 获取文章统计
|
||||
|
||||
// 文章管理
|
||||
adminArticleGroup.POST("", r.handler.CreateArticle) // 创建文章
|
||||
adminArticleGroup.PUT("/:id", r.handler.UpdateArticle) // 更新文章
|
||||
adminArticleGroup.DELETE("/:id", r.handler.DeleteArticle) // 删除文章
|
||||
|
||||
// 文章状态管理
|
||||
adminArticleGroup.POST("/:id/publish", r.handler.PublishArticle) // 发布文章
|
||||
adminArticleGroup.POST("/:id/schedule-publish", r.handler.SchedulePublishArticle) // 定时发布文章
|
||||
adminArticleGroup.POST("/:id/archive", r.handler.ArchiveArticle) // 归档文章
|
||||
adminArticleGroup.PUT("/:id/featured", r.handler.SetFeatured) // 设置推荐状态
|
||||
}
|
||||
|
||||
// 管理员分类管理路由
|
||||
adminCategoryGroup := engine.Group("/api/v1/admin/article-categories")
|
||||
adminCategoryGroup.Use(r.admin.Handle())
|
||||
{
|
||||
// 分类管理
|
||||
adminCategoryGroup.POST("", r.handler.CreateCategory) // 创建分类
|
||||
adminCategoryGroup.PUT("/:id", r.handler.UpdateCategory) // 更新分类
|
||||
adminCategoryGroup.DELETE("/:id", r.handler.DeleteCategory) // 删除分类
|
||||
}
|
||||
|
||||
// 管理员标签管理路由
|
||||
adminTagGroup := engine.Group("/api/v1/admin/article-tags")
|
||||
adminTagGroup.Use(r.admin.Handle())
|
||||
{
|
||||
// 标签管理
|
||||
adminTagGroup.POST("", r.handler.CreateTag) // 创建标签
|
||||
adminTagGroup.PUT("/:id", r.handler.UpdateTag) // 更新标签
|
||||
adminTagGroup.DELETE("/:id", r.handler.DeleteTag) // 删除标签
|
||||
}
|
||||
|
||||
r.logger.Info("文章路由注册完成")
|
||||
}
|
||||
@@ -81,11 +81,7 @@ func (r *ProductAdminRoutes) Register(router *sharedhttp.GinRouter) {
|
||||
subscriptions.POST("/batch-update-prices", r.handler.BatchUpdateSubscriptionPrices)
|
||||
}
|
||||
|
||||
// API调用记录管理
|
||||
apiCalls := adminGroup.Group("/api-calls")
|
||||
{
|
||||
apiCalls.GET("", r.handler.GetAdminApiCalls)
|
||||
}
|
||||
|
||||
|
||||
// 消费记录管理
|
||||
walletTransactions := adminGroup.Group("/wallet-transactions")
|
||||
|
||||
Reference in New Issue
Block a user