package routes import ( "git.ourworld.tf/herocode/heroagent/pkg/servers/ui/controllers" "git.ourworld.tf/herocode/heroagent/pkg/servers/ui/models" "github.com/gofiber/fiber/v2" ) // SetupRoutes configures the application's routes. func SetupRoutes(app *fiber.App) { // Initialize services and controllers // For now, using the mock process manager processManagerService := models.NewMockProcessManager() dashboardController := controllers.NewDashboardController() processController := controllers.NewProcessController(processManagerService) authController := controllers.NewAuthController() // --- Public Routes --- // Login and Logout app.Get("/login", authController.ShowLoginPage) app.Post("/login", authController.HandleLogin) app.Get("/logout", authController.HandleLogout) // --- Authenticated Routes --- // TODO: Add middleware here to protect routes that require authentication. // For example: // authenticated := app.Group("/", authMiddleware) // Assuming authMiddleware is defined // authenticated.Get("/", dashboardController.ShowDashboard) // authenticated.Get("/processes", processController.ShowProcessManager) // authenticated.Post("/processes/kill/:pid", processController.HandleKillProcess) // For now, routes are public for development ease app.Get("/", dashboardController.ShowDashboard) app.Get("/processes", processController.ShowProcessManager) app.Post("/processes/kill/:pid", processController.HandleKillProcess) } // TODO: Implement authMiddleware // func authMiddleware(c *fiber.Ctx) error { // // Check for session/token // // If not authenticated, redirect to /login // // If authenticated, c.Next() // // Example: // // if c.Cookies("session_token") == "" { // // return c.Redirect("/login") // // } // return c.Next() // }