2024-12-20 16:52:48 +07:00

54 lines
961 B
Go

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)
engine := gin.New()
engine.RedirectTrailingSlash = true
engine.RedirectFixedPath = true
server := &Server{
engine,
}
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")
}