gopay/cmd/main.go

54 lines
1.1 KiB
Go
Raw Permalink Normal View History

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