diff --git a/controllers/auth.ctrl.go b/controllers/auth.ctrl.go index 4e6905c..690526e 100644 --- a/controllers/auth.ctrl.go +++ b/controllers/auth.ctrl.go @@ -18,11 +18,11 @@ type AuthController struct { svc *lib.LndhubService } -func NewAuthController(svc *lib.LndhubService, secret []byte, expiry int) *AuthController { +func NewAuthController(svc *lib.LndhubService) *AuthController { return &AuthController{ svc: svc, - JWTSecret: secret, - JWTExpiry: expiry, + JWTSecret: svc.Config.JWTSecret, + JWTExpiry: svc.Config.JWTExpiry, } } diff --git a/lib/service.go b/lib/service.go index e506bd8..5f90ed6 100644 --- a/lib/service.go +++ b/lib/service.go @@ -9,9 +9,20 @@ import ( ) type LndhubService struct { + Config *Config DB *bun.DB LndClient *lnrpc.LightningClient } +type Config struct { + DatabaseUri string `envconfig:"DATABASE_URI" required:"true"` + SentryDSN string `envconfig:"SENTRY_DSN"` + LogFilePath string `envconfig:"LOG_FILE_PATH"` + JWTSecret []byte `envconfig:"JWT_SECRET" required:"true"` + JWTExpiry int `envconfig:"JWT_EXPIRY" default:"604800"` // in seconds + LNDAddress string `envconfig:"LND_ADDRESS" required:"true"` + LNDMacaroonHex string `envconfig:"LND_MACAROON_HEX" required:"true"` + LNDCertHex string `envconfig:"LND_CERT_HEX"` +} func (svc *LndhubService) CurrentBalance(ctx context.Context, userId int64) (int64, error) { var balance int64 diff --git a/main.go b/main.go index d83174b..1efb144 100644 --- a/main.go +++ b/main.go @@ -26,26 +26,15 @@ import ( "github.com/ziflex/lecho/v3" ) -type Config struct { - DatabaseUri string `envconfig:"DATABASE_URI" required:"true"` - SentryDSN string `envconfig:"SENTRY_DSN"` - LogFilePath string `envconfig:"LOG_FILE_PATH"` - JWTSecret []byte `envconfig:"JWT_SECRET" required:"true"` - JWTExpiry int `envconfig:"JWT_EXPIRY" default:"604800"` // in seconds - LNDAddress string `envconfig:"LND_ADDRESS" required:"true"` - LNDMacaroonHex string `envconfig:"LND_MACAROON_HEX" required:"true"` - LNDCertHex string `envconfig:"LND_CERT_HEX"` -} - func main() { - var c Config + c := &lib.Config{} // Load configruation from environment variables err := godotenv.Load(".env") if err != nil { fmt.Println("Failed to load .env file") } - err = envconfig.Process("", &c) + err = envconfig.Process("", c) if err != nil { panic(err) } @@ -113,11 +102,12 @@ func main() { logger.Infof("Connected to LND: %s - %s", getInfo.Alias, getInfo.IdentityPubkey) svc := &lib.LndhubService{ + Config: c, DB: dbConn, LndClient: &lndClient, } - e.POST("/auth", controllers.NewAuthController(svc, c.JWTSecret, c.JWTExpiry).Auth) + e.POST("/auth", controllers.NewAuthController(svc).Auth) e.POST("/create", controllers.NewCreateUserController(svc).CreateUser) secured := e.Group("", tokens.Middleware(c.JWTSecret))