Added frontend

This commit is contained in:
2026-04-03 11:51:36 +02:00
parent 12678f8241
commit 29ee01afba
30 changed files with 1 additions and 337 deletions
+70
View File
@@ -0,0 +1,70 @@
package routes
import (
"database/sql"
"log"
"path/filepath"
"quay/app/cachedrepo"
"quay/app/handlers"
"quay/app/middleware"
"quay/app/models"
"quay/internal/config"
"quay/internal/database"
"quay/internal/envconfig"
"github.com/gofiber/fiber/v3"
)
func Register(app *fiber.App, cfg *config.Config, envCfg *envconfig.EnvConfig, db *sql.DB) {
siteRepository := cachedrepo.NewCachedSiteRepository(database.NewSQLiteSiteRepository(db))
updateSiteHandler := handlers.NewUpdateSiteHandler(envCfg, siteRepository)
siteHandler := handlers.NewSiteHandler(siteRepository)
api := app.Group("/api/v1", middleware.APIHostGuard(envCfg.DashboardHost))
api.Get("/health", handlers.HealthCheck)
api.Post("/update", updateSiteHandler.PostUpdate)
api.Get("/sites", siteHandler.GetSites)
api.Get("/sites/:id", siteHandler.GetSite)
api.Post("/sites", siteHandler.PostSite)
api.Put("/sites/:id", siteHandler.PutSite)
api.Delete("/sites/:id", siteHandler.DeleteSite)
api.Get("/sites/:id/forward-rules", siteHandler.GetSiteForwardRules)
api.Post("/sites/:id/forward-rules", siteHandler.PostForwardRule)
api.Get("/forward-rules/:id", siteHandler.GetForwardRule)
api.Put("/forward-rules/:id", siteHandler.PutForwardRule)
api.Delete("/forward-rules/:id", siteHandler.DeleteForwardRule)
api.Get("/sites/:id/custom-headers", siteHandler.GetSiteCustomHeaders)
api.Post("/sites/:id/custom-headers", siteHandler.PostCustomHeaders)
api.Get("/custom-headers/:id", siteHandler.GetCustomHeaders)
api.Put("/custom-headers/:id", siteHandler.PutCustomHeaders)
api.Delete("/custom-headers/:id", siteHandler.DeleteCustomHeaders)
api.Get("/custom-headers/:id/headers", siteHandler.GetCustomHeaderHeaders)
api.Post("/custom-headers/:id/headers", siteHandler.PostHeader)
api.Get("/headers/:id", siteHandler.GetHeader)
api.Put("/headers/:id", siteHandler.PutHeader)
api.Delete("/headers/:id", siteHandler.DeleteHeader)
api.Use(func(c fiber.Ctx) error {
return c.Status(fiber.StatusNotFound).JSON(&models.APIError{
Message: "Endpoint not found",
})
})
storagePath, err := filepath.Abs(envCfg.StoragePath)
if err != nil {
log.Fatalf("Failed to resolve storage path: %v", err)
}
siteMap := make(map[string]config.SiteConfig)
for _, site := range cfg.Sites {
siteMap[site.Domain] = site
}
app.Use(handlers.NewStaticHandler(storagePath, siteRepository))
}