feat(channel): integrate channel functionality into post management
- Added Channel support in Post model, including ChannelID field in PostRequest and PostResponse DTOs. - Updated PostService and PostRepository to handle channel-specific logic for creating and listing posts. - Introduced ChannelRepository and ChannelService, along with corresponding handlers for managing channels. - Enhanced router to include routes for channel management and public channel listing. - Seeded default channels in the database during initialization.
This commit is contained in:
@@ -23,6 +23,7 @@ type Router struct {
|
||||
groupHandler *handler.GroupHandler
|
||||
stickerHandler *handler.StickerHandler
|
||||
voteHandler *handler.VoteHandler
|
||||
channelHandler *handler.ChannelHandler
|
||||
scheduleHandler *handler.ScheduleHandler
|
||||
roleHandler *handler.RoleHandler
|
||||
adminUserHandler *handler.AdminUserHandler
|
||||
@@ -51,6 +52,7 @@ func New(
|
||||
groupHandler *handler.GroupHandler,
|
||||
stickerHandler *handler.StickerHandler,
|
||||
voteHandler *handler.VoteHandler,
|
||||
channelHandler *handler.ChannelHandler,
|
||||
scheduleHandler *handler.ScheduleHandler,
|
||||
roleHandler *handler.RoleHandler,
|
||||
adminUserHandler *handler.AdminUserHandler,
|
||||
@@ -82,6 +84,7 @@ func New(
|
||||
groupHandler: groupHandler,
|
||||
stickerHandler: stickerHandler,
|
||||
voteHandler: voteHandler,
|
||||
channelHandler: channelHandler,
|
||||
scheduleHandler: scheduleHandler,
|
||||
roleHandler: roleHandler,
|
||||
adminUserHandler: adminUserHandler,
|
||||
@@ -238,6 +241,14 @@ func (r *Router) setupRoutes() {
|
||||
posts.DELETE("/:id/vote", authMiddleware, r.voteHandler.Unvote) // 取消投票
|
||||
}
|
||||
|
||||
// 频道路由(公开)
|
||||
if r.channelHandler != nil {
|
||||
channels := v1.Group("/channels")
|
||||
{
|
||||
channels.GET("", r.channelHandler.ListPublic)
|
||||
}
|
||||
}
|
||||
|
||||
// 课表路由
|
||||
if r.scheduleHandler != nil {
|
||||
schedule := v1.Group("/schedule")
|
||||
@@ -449,6 +460,14 @@ func (r *Router) setupRoutes() {
|
||||
admin.PUT("/posts/:id/feature", r.adminPostHandler.SetPostFeature)
|
||||
}
|
||||
|
||||
// 频道管理
|
||||
if r.channelHandler != nil {
|
||||
admin.GET("/channels", r.channelHandler.AdminList)
|
||||
admin.POST("/channels", r.channelHandler.AdminCreate)
|
||||
admin.PUT("/channels/:id", r.channelHandler.AdminUpdate)
|
||||
admin.DELETE("/channels/:id", r.channelHandler.AdminDelete)
|
||||
}
|
||||
|
||||
// 评论管理
|
||||
if r.adminCommentHandler != nil {
|
||||
admin.GET("/comments", r.adminCommentHandler.GetCommentList)
|
||||
|
||||
Reference in New Issue
Block a user