package app import ( "fmt" "furtuna-be/config" "github.com/gin-gonic/gin" "github.com/gofrs/uuid" "furtuna-be/internal/middlewares" ) func NewServer(cfg *config.Config) *Server { gin.SetMode(gin.ReleaseMode) server := &Server{ gin.New(), } server.Use(middlewares.Cors()) server.Use(middlewares.LogCorsError()) server.Use(middlewares.Trace()) server.Use(middlewares.Logger(&cfg.FeatureToggle)) server.Use(middlewares.RequestMiddleware(&cfg.FeatureToggle)) return server } type Server struct { *gin.Engine } func (*Server) GenerateUUID() (string, error) { id, err := uuid.NewV4() if err != nil { return "", err } return id.String(), nil } func (s Server) Listen(address string) error { fmt.Printf("API server listening at: %s\n\n", address) return s.Run(address) } func (s Server) StartScheduler() { fmt.Printf("Scheduler started\n") }