Files
platform/web/web.go
2025-03-17 17:58:05 +08:00

55 lines
893 B
Go

package web
import (
"github.com/gofiber/fiber/v2"
)
import "log/slog"
type Config struct {
Logger *slog.Logger
Listen string
}
type Server struct {
config *Config
log *slog.Logger
fiber *fiber.App
}
func New(config *Config) (*Server, error) {
_config := config
if config == nil {
_config = &Config{}
}
if _config.Logger == nil {
_config.Logger = slog.Default()
}
return &Server{
config: _config,
log: _config.Logger,
}, nil
}
func (s *Server) Run() error {
s.fiber = fiber.New(fiber.Config{})
UseRoute(s.fiber)
s.log.Info("Server started on :8080")
err := s.fiber.Listen(":8080")
if err != nil {
s.log.Error("Failed to start server", slog.Any("error", err))
}
s.log.Info("Server stopped")
return nil
}
func (s *Server) Stop() {
err := s.fiber.Shutdown()
if err != nil {
s.log.Error("Failed to shutdown server", slog.Any("error", err))
}
}