package http import ( "log/slog" stdhttp "net/http" "github.com/go-chi/chi/v5" chimiddleware "github.com/go-chi/chi/v5/middleware" ) type AuthConfig struct { Username string Password string } func NewRouter(handler *Handler, logger *slog.Logger, auth AuthConfig) stdhttp.Handler { r := chi.NewRouter() r.Use(chimiddleware.RequestID) r.Use(chimiddleware.RealIP) r.Use(loggingMiddleware(logger)) r.Use(chimiddleware.Recoverer) r.Get("/healthz", handler.Healthz) protected := chi.NewRouter() protected.Use(basicAuthMiddleware(auth)) protected.Get("/readyz", handler.Readyz) protected.Route("/api", func(r chi.Router) { r.Post("/integrations/plane/tasks", handler.CreatePlaneTask) r.Post("/tasks", handler.CreateTask) r.Get("/tasks", handler.ListTasks) r.Get("/tasks/{id}", handler.GetTask) r.Post("/tasks/{id}/enqueue", handler.EnqueueTask) }) r.Mount("/", protected) return r }