From 1e11664ec37d42e1efe562c540a445ba1dc2cad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Benouarets?= Date: Thu, 25 Sep 2025 23:24:42 +0200 Subject: [PATCH] feat: add main application entry point - Add main.go with Fiber web server setup - Include database initialization and admin user setup - Add middleware configuration (logging, request ID, health check) - Add Swagger documentation integration - Configure server to listen on port 8000 - Include proper error handling and graceful shutdown --- main.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 main.go diff --git a/main.go b/main.go new file mode 100644 index 0000000..9b36ce6 --- /dev/null +++ b/main.go @@ -0,0 +1,46 @@ +package main + +import ( + "git.secnex.io/secnex/idp-api/db" + "git.secnex.io/secnex/idp-api/middlewares" + "git.secnex.io/secnex/idp-api/routes" + "git.secnex.io/secnex/idp-api/utils" + "github.com/gofiber/contrib/swagger" + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/log" + "github.com/gofiber/fiber/v2/middleware/healthcheck" + "github.com/gofiber/fiber/v2/middleware/logger" + "github.com/gofiber/fiber/v2/middleware/requestid" +) + +func main() { + if err := db.InitializeDB(); err != nil { + log.Fatalf("Failed to initialize database: %v", err) + } + defer db.CloseDB() + + utils.CheckAdminUser() + + app := fiber.New() + + swaggerCfg := swagger.Config{ + BasePath: "/", + FilePath: "./docs/swagger.json", + Path: "/docs/swagger", + Title: "Swagger API Docs", + } + + app.Use( + logger.New(), + requestid.New(), + healthcheck.New(), + swagger.New(swaggerCfg), + middlewares.DatabaseMiddleware(), // Add database middleware + ) + + routes.SetupRoutes(app) + + if err := app.Listen(":8000"); err != nil { + log.Fatalf("Failed to start server: %v", err) + } +}