add router switch and pgx changes
This commit is contained in:
@@ -64,6 +64,9 @@ type Config struct {
|
||||
// default map[string]DatabaseConfig{}
|
||||
Databases map[string]DatabaseConfig
|
||||
|
||||
// default false
|
||||
CreateRouter bool
|
||||
|
||||
// default false
|
||||
CreateSSEBroker bool
|
||||
|
||||
@@ -87,9 +90,9 @@ type App struct {
|
||||
}
|
||||
|
||||
type Paseto struct {
|
||||
AsymmetricKey paseto.V4AsymmetricSecretKey
|
||||
PublicKey paseto.V4AsymmetricPublicKey
|
||||
Duration time.Duration
|
||||
SecretKey paseto.V4AsymmetricSecretKey
|
||||
PublicKey paseto.V4AsymmetricPublicKey
|
||||
Duration time.Duration
|
||||
}
|
||||
|
||||
func NewApp(config ...Config) *App {
|
||||
@@ -101,6 +104,7 @@ func NewApp(config ...Config) *App {
|
||||
Timezone: "UTC",
|
||||
Paseto: nil,
|
||||
Databases: make(map[string]DatabaseConfig),
|
||||
CreateRouter: false,
|
||||
CreateSSEBroker: false,
|
||||
CreateSession: false,
|
||||
CreateMailer: false,
|
||||
@@ -162,11 +166,11 @@ func NewApp(config ...Config) *App {
|
||||
var ak paseto.V4AsymmetricSecretKey
|
||||
var err error
|
||||
|
||||
if os.Getenv("PASETO_ASYMMETRIC_KEY") != "" {
|
||||
slog.Debug("using paseto asymmetric key from env")
|
||||
ak, err = paseto.NewV4AsymmetricSecretKeyFromHex(os.Getenv("PASETO_ASYMMETRIC_KEY"))
|
||||
if os.Getenv("PASETO_SECRET_KEY") != "" {
|
||||
slog.Debug("using paseto secret key from env")
|
||||
ak, err = paseto.NewV4AsymmetricSecretKeyFromHex(os.Getenv("PASETO_SECRET_KEY"))
|
||||
if err != nil {
|
||||
slog.Error("error creating asymmetric key", "error", err)
|
||||
slog.Error("error creating secret key", "error", err)
|
||||
ak = paseto.NewV4AsymmetricSecretKey()
|
||||
}
|
||||
} else {
|
||||
@@ -187,15 +191,24 @@ func NewApp(config ...Config) *App {
|
||||
}
|
||||
|
||||
cfg.Paseto = &Paseto{
|
||||
AsymmetricKey: ak,
|
||||
PublicKey: pk,
|
||||
Duration: duration,
|
||||
SecretKey: ak,
|
||||
PublicKey: pk,
|
||||
Duration: duration,
|
||||
}
|
||||
}
|
||||
|
||||
app := &App{
|
||||
config: cfg,
|
||||
Router: newRouter(),
|
||||
app := &App{config: cfg}
|
||||
|
||||
if cfg.CreateRouter {
|
||||
app.Router = newRouter()
|
||||
}
|
||||
|
||||
// Create PGX pools automatically if there are entries in Databases with driver 'pgx'
|
||||
for dbName, dbConfig := range cfg.Databases {
|
||||
if dbConfig.DriverName == "pgx" {
|
||||
slog.Debug("creating pgx pool", "database", dbName)
|
||||
app.newPGXPool(dbName)
|
||||
}
|
||||
}
|
||||
|
||||
slog.Info(
|
||||
@@ -215,7 +228,7 @@ func NewApp(config ...Config) *App {
|
||||
)
|
||||
|
||||
if cfg.EnvMode != EnvironmentProduction {
|
||||
slog.Debug("paseto_assymetric_key", "key", cfg.Paseto.AsymmetricKey.ExportHex())
|
||||
slog.Debug("paseto_secret_key", "key", cfg.Paseto.SecretKey.ExportHex())
|
||||
}
|
||||
|
||||
if cfg.CreateSSEBroker {
|
||||
|
||||
Reference in New Issue
Block a user