2025-09-19 04:08:42 +00:00
|
|
|
package ai_chat
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"narasi-ahli-be/app/module/ai_chat/controller"
|
|
|
|
|
"narasi-ahli-be/app/module/ai_chat/repository"
|
|
|
|
|
"narasi-ahli-be/app/module/ai_chat/service"
|
|
|
|
|
|
2025-09-19 07:40:54 +00:00
|
|
|
"github.com/gofiber/fiber/v2"
|
2025-09-19 04:08:42 +00:00
|
|
|
"go.uber.org/fx"
|
|
|
|
|
)
|
|
|
|
|
|
2025-09-19 07:40:54 +00:00
|
|
|
// struct of AIChatRouter
|
|
|
|
|
type AIChatRouter struct {
|
|
|
|
|
App fiber.Router
|
|
|
|
|
Controller controller.AIChatController
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// register bulky of AI Chat module
|
|
|
|
|
var NewAIChatModule = fx.Options(
|
|
|
|
|
// register repository of AI Chat module
|
|
|
|
|
fx.Provide(repository.NewAIChatRepository),
|
|
|
|
|
|
|
|
|
|
// register service of AI Chat module
|
|
|
|
|
fx.Provide(service.NewAIChatService),
|
|
|
|
|
|
|
|
|
|
// register controller of AI Chat module
|
|
|
|
|
fx.Provide(controller.NewAIChatController),
|
|
|
|
|
|
|
|
|
|
// register router of AI Chat module
|
|
|
|
|
fx.Provide(NewAIChatRouter),
|
2025-09-19 04:08:42 +00:00
|
|
|
)
|
|
|
|
|
|
2025-09-19 07:40:54 +00:00
|
|
|
// init AIChatRouter
|
|
|
|
|
func NewAIChatRouter(fiber *fiber.App, controller controller.AIChatController) *AIChatRouter {
|
|
|
|
|
return &AIChatRouter{
|
|
|
|
|
App: fiber,
|
|
|
|
|
Controller: controller,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// register routes of AI Chat module
|
|
|
|
|
func (_i *AIChatRouter) RegisterAIChatRoutes() {
|
|
|
|
|
// define controllers
|
|
|
|
|
aiChatController := _i.Controller
|
|
|
|
|
|
|
|
|
|
// define routes
|
|
|
|
|
_i.App.Route("/ai-chat", func(router fiber.Router) {
|
|
|
|
|
// Sessions routes
|
|
|
|
|
router.Get("/sessions", aiChatController.GetUserSessions)
|
|
|
|
|
router.Get("/sessions/:id", aiChatController.GetSession)
|
|
|
|
|
router.Post("/sessions", aiChatController.CreateSession)
|
|
|
|
|
router.Put("/sessions/:id", aiChatController.UpdateSession)
|
|
|
|
|
router.Delete("/sessions/:id", aiChatController.DeleteSession)
|
|
|
|
|
|
|
|
|
|
// Messages routes
|
2025-09-20 02:45:59 +00:00
|
|
|
router.Get("/sessions/messages", aiChatController.GetSessionMessages)
|
|
|
|
|
router.Post("/sessions/messages", aiChatController.SendMessage)
|
|
|
|
|
router.Put("/sessions/messages/:messageId", aiChatController.UpdateMessage)
|
|
|
|
|
router.Delete("/sessions/messages/:messageId", aiChatController.DeleteMessage)
|
2025-09-19 07:40:54 +00:00
|
|
|
|
|
|
|
|
// Logs routes
|
|
|
|
|
router.Get("/logs", aiChatController.GetUserLogs)
|
|
|
|
|
router.Get("/logs/:id", aiChatController.GetLog)
|
|
|
|
|
})
|
|
|
|
|
}
|