
- 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
47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
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)
|
|
}
|
|
}
|