50 lines
872 B
Go
Raw Normal View History

2023-10-08 15:59:42 +07:00
package app
import (
"fmt"
2024-08-10 23:52:09 +07:00
"furtuna-be/config"
2023-10-08 15:59:42 +07:00
"github.com/gin-gonic/gin"
"github.com/gofrs/uuid"
"furtuna-be/internal/middlewares"
)
2024-08-10 23:52:09 +07:00
func NewServer(cfg *config.Config) *Server {
2023-10-08 15:59:42 +07:00
gin.SetMode(gin.ReleaseMode)
server := &Server{
gin.New(),
}
server.Use(middlewares.Cors())
server.Use(middlewares.LogCorsError())
server.Use(middlewares.Trace())
2024-08-10 23:52:09 +07:00
server.Use(middlewares.Logger(&cfg.FeatureToggle))
server.Use(middlewares.RequestMiddleware(&cfg.FeatureToggle))
2023-10-08 15:59:42 +07:00
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")
}