2024-06-02 11:57:14 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
_ "embed"
|
2024-06-06 18:16:09 +00:00
|
|
|
"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() {
|
2024-06-06 18:16:09 +00:00
|
|
|
// 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
|
2024-06-06 18:16:09 +00:00
|
|
|
ctx := context.New(db, cfg)
|
2024-06-03 11:22:08 +00:00
|
|
|
|
|
|
|
// Create router
|
2024-06-06 18:16:09 +00:00
|
|
|
rtr := router.New(ctx)
|
2024-06-02 13:07:09 +00:00
|
|
|
|
|
|
|
// Create server
|
|
|
|
server := &http.Server{
|
2024-06-06 18:16:09 +00:00
|
|
|
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),
|
|
|
|
}
|
|
|
|
|
2024-06-06 18:16:09 +00:00
|
|
|
// 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
|
|
|
}
|