router.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package router
  2. import (
  3. "github.com/2930134478/AI-CS/backend/controller"
  4. "github.com/gin-gonic/gin"
  5. )
  6. // ControllerSet 用于收集路由需要的控制器集合。
  7. type ControllerSet struct {
  8. Auth *controller.AuthController
  9. Conversation *controller.ConversationController
  10. Message *controller.MessageController
  11. Admin *controller.AdminController
  12. Profile *controller.ProfileController
  13. }
  14. // RegisterRoutes 注册 HTTP 路由及对应的处理函数。
  15. func RegisterRoutes(r *gin.Engine, controllers ControllerSet, wsHandler gin.HandlerFunc) {
  16. // Auth
  17. r.POST("/login", controllers.Auth.Login)
  18. r.POST("/logout", controllers.Auth.Logout)
  19. // Conversation
  20. r.POST("/conversation/init", controllers.Conversation.InitConversation)
  21. r.GET("/conversations", controllers.Conversation.ListConversations)
  22. r.GET("/conversations/:id", controllers.Conversation.GetConversationDetail)
  23. r.PUT("/conversations/:id/contact", controllers.Conversation.UpdateContactInfo)
  24. r.GET("/conversations/search", controllers.Conversation.SearchConversations)
  25. // Message
  26. r.POST("/messages", controllers.Message.CreateMessage)
  27. r.GET("/messages", controllers.Message.ListMessages)
  28. r.PUT("/messages/read", controllers.Message.MarkMessagesRead)
  29. // Admin
  30. r.POST("/admin/users", controllers.Admin.CreateAgent)
  31. // Profile(个人资料)
  32. r.GET("/agent/profile/:user_id", controllers.Profile.GetProfile)
  33. r.PUT("/agent/profile/:user_id", controllers.Profile.UpdateProfile)
  34. r.POST("/agent/avatar/:user_id", controllers.Profile.UploadAvatar)
  35. // WebSocket
  36. r.GET("/ws", wsHandler)
  37. }