package main import ( _ "embed" "fmt" "net/http" "time" "git.supernets.org/perp/gopay/internal/config" "git.supernets.org/perp/gopay/internal/context" "git.supernets.org/perp/gopay/internal/database" "git.supernets.org/perp/gopay/internal/jwt" "git.supernets.org/perp/gopay/internal/router" "github.com/rs/zerolog/log" ) //go:embed config.toml var content []byte // Current version const version = "0.0.0" func main() { // Parse config & setup logger cfg := config.Parse(content) config.SetupLogger(cfg.Log) // Create JWT jwt.New(cfg.Auth.Secret) // Create database db := database.New(cfg.Database) // Create context ctx := context.New(db, cfg) // Create router rtr := router.New(ctx) // Create server server := &http.Server{ Handler: rtr, Addr: fmt.Sprintf("%s:%d", cfg.Server.Host, cfg.Server.Port), ReadTimeout: time.Second * time.Duration(cfg.Server.ReadTimeout), WriteTimeout: time.Second * time.Duration(cfg.Server.WriteTimeout), } // Run server err := server.ListenAndServe() if err != nil { log.Panic().Msg(err.Error()) } }