feat(im): Task 5 - IM REST Controller + Router + Wire 集成
IMController (REST API):
- GET /api/v1/im/conversations: 会话列表
- GET /api/v1/im/messages: 历史消息(游标分页)
- PUT /api/v1/im/conversations/:id/pin: 置顶/取消
- DELETE /api/v1/im/conversations/🆔 删除会话
- DELETE /api/v1/im/conversations/:id/messages: 清空记录
- GET /api/v1/im/messages/search: 全局搜索
- GET /api/v1/im/unread: 全局未读数
Wire 集成:
- IMSet Provider Set + wire.Bind 接口注入
- App struct 新增 IM 字段
- wire_gen.go 手动更新
- OfflinePusher 通过 SetOfflinePusher 注入 WS Handler
Made-with: Cursor
This commit is contained in:
@@ -16,6 +16,7 @@ import (
|
||||
controller3 "github.com/echochat/backend/app/contact/controller"
|
||||
dao3 "github.com/echochat/backend/app/contact/dao"
|
||||
service3 "github.com/echochat/backend/app/contact/service"
|
||||
imApp "github.com/echochat/backend/app/im"
|
||||
"github.com/echochat/backend/app/ws"
|
||||
"github.com/echochat/backend/config"
|
||||
"github.com/echochat/backend/pkg/db"
|
||||
@@ -57,6 +58,15 @@ func InitializeApp(cfg *config.Config) (*App, error) {
|
||||
friendGroupDAO := dao3.NewFriendGroupDAO(gormDB)
|
||||
contactService := service3.NewContactService(friendshipDAO, friendGroupDAO, pubSub)
|
||||
contactController := controller3.NewContactController(contactService)
|
||||
app := NewApp(cfg, gormDB, client, authService, authController, adminAuthController, userManageController, onlineController, contactManageController, handler, hub, pubSub, onlineService, contactController)
|
||||
|
||||
// IM 模块初始化
|
||||
conversationDAO := imApp.ProvideConversationDAO(gormDB)
|
||||
messageDAO := imApp.ProvideMessageDAO(gormDB)
|
||||
imService := imApp.ProvideIMService(conversationDAO, messageDAO, pubSub, client, friendshipDAO, friendshipDAO)
|
||||
imEventHandler := imApp.ProvideIMEventHandler(imService, hub)
|
||||
offlinePusher := imApp.ProvideOfflinePusher(imService, conversationDAO, pubSub)
|
||||
imController := imApp.ProvideIMController(imService)
|
||||
|
||||
app := NewApp(cfg, gormDB, client, authService, authController, adminAuthController, userManageController, onlineController, contactManageController, handler, hub, pubSub, onlineService, contactController, imController, imEventHandler, offlinePusher)
|
||||
return app, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user