router.go 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. AIConfig *controller.AIConfigController
  14. FAQ *controller.FAQController
  15. Visitor *controller.VisitorController
  16. }
  17. // RegisterRoutes 注册 HTTP 路由及对应的处理函数。
  18. func RegisterRoutes(r *gin.Engine, controllers ControllerSet, wsHandler gin.HandlerFunc) {
  19. // Auth
  20. r.POST("/login", controllers.Auth.Login)
  21. r.POST("/logout", controllers.Auth.Logout)
  22. // Conversation
  23. r.POST("/conversation/init", controllers.Conversation.InitConversation)
  24. r.GET("/conversations", controllers.Conversation.ListConversations)
  25. r.GET("/conversations/:id", controllers.Conversation.GetConversationDetail)
  26. r.PUT("/conversations/:id/contact", controllers.Conversation.UpdateContactInfo)
  27. r.GET("/conversations/search", controllers.Conversation.SearchConversations)
  28. r.GET("/conversations/ai-models", controllers.Conversation.GetPublicAIModels) // 获取开放的模型列表(供访客选择)
  29. // Message
  30. r.POST("/messages", controllers.Message.CreateMessage)
  31. r.POST("/messages/upload", controllers.Message.UploadFile) // 文件上传接口
  32. r.GET("/messages", controllers.Message.ListMessages)
  33. r.PUT("/messages/read", controllers.Message.MarkMessagesRead)
  34. // Admin(用户管理)
  35. r.GET("/admin/users", controllers.Admin.ListUsers) // 获取所有用户列表
  36. r.GET("/admin/users/:id", controllers.Admin.GetUser) // 获取用户详情
  37. r.POST("/admin/users", controllers.Admin.CreateUser) // 创建新用户
  38. r.PUT("/admin/users/:id", controllers.Admin.UpdateUser) // 更新用户信息
  39. r.DELETE("/admin/users/:id", controllers.Admin.DeleteUser) // 删除用户
  40. r.PUT("/admin/users/:id/password", controllers.Admin.UpdateUserPassword) // 更新用户密码
  41. // 兼容旧接口
  42. r.POST("/admin/agents", controllers.Admin.CreateAgent) // 创建客服(兼容旧接口)
  43. // Profile(个人资料)
  44. r.GET("/agent/profile/:user_id", controllers.Profile.GetProfile)
  45. r.PUT("/agent/profile/:user_id", controllers.Profile.UpdateProfile)
  46. r.POST("/agent/avatar/:user_id", controllers.Profile.UploadAvatar)
  47. // AI Config(AI 配置)
  48. r.POST("/agent/ai-config/:user_id", controllers.AIConfig.CreateAIConfig)
  49. r.GET("/agent/ai-config/:user_id", controllers.AIConfig.ListAIConfigs)
  50. r.GET("/agent/ai-config/:user_id/:id", controllers.AIConfig.GetAIConfig)
  51. r.PUT("/agent/ai-config/:user_id/:id", controllers.AIConfig.UpdateAIConfig)
  52. r.DELETE("/agent/ai-config/:user_id/:id", controllers.AIConfig.DeleteAIConfig)
  53. // FAQ(事件管理/常见问题)
  54. r.GET("/faqs", controllers.FAQ.ListFAQs) // 获取 FAQ 列表(支持关键词搜索)
  55. r.GET("/faqs/:id", controllers.FAQ.GetFAQ) // 获取 FAQ 详情
  56. r.POST("/faqs", controllers.FAQ.CreateFAQ) // 创建 FAQ
  57. r.PUT("/faqs/:id", controllers.FAQ.UpdateFAQ) // 更新 FAQ
  58. r.DELETE("/faqs/:id", controllers.FAQ.DeleteFAQ) // 删除 FAQ
  59. // Visitor(访客相关)
  60. r.GET("/visitor/online-agents", controllers.Visitor.GetOnlineAgents) // 获取在线客服列表
  61. // WebSocket
  62. r.GET("/ws", wsHandler)
  63. }