refactor: newServer - accept logger and db as arguments
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Dawid Wysokiński 2023-01-26 06:00:24 +01:00
parent a64aaac1d8
commit 02f5e24c6f
Signed by: Kichiyaki
GPG Key ID: B5445E357FB8B892
1 changed files with 8 additions and 18 deletions

View File

@ -51,11 +51,7 @@ func New() *cli.Command {
_ = db.Close()
}()
srv, err := newServer(serverConfig{
appVersion: c.App.Version,
logger: logger,
db: db,
})
srv, err := newServer(logger, db)
if err != nil {
return fmt.Errorf("newServer: %w", err)
}
@ -75,22 +71,16 @@ func New() *cli.Command {
}
}
type serverConfig struct {
appVersion string
logger *zap.Logger
db *bun.DB
}
func newServer(cfg serverConfig) (*http.Server, error) {
func newServer(logger *zap.Logger, db *bun.DB) (*http.Server, error) {
apiCfg, err := newAPIConfig()
if err != nil {
return nil, fmt.Errorf("newAPIConfig: %w", err)
}
// repos
userRepo := bundb.NewUser(cfg.db)
apiKeyRepo := bundb.NewAPIKey(cfg.db)
sessionRepo := bundb.NewSession(cfg.db)
userRepo := bundb.NewUser(db)
apiKeyRepo := bundb.NewAPIKey(db)
sessionRepo := bundb.NewSession(db)
// services
userSvc := service.NewUser(userRepo)
@ -99,8 +89,8 @@ func newServer(cfg serverConfig) (*http.Server, error) {
// router
r := chi.NewRouter()
r.Use(getChiMiddlewares(cfg.logger)...)
r.Mount(metaEndpointsPrefix, meta.NewRouter([]meta.Checker{bundb.NewChecker(cfg.db)}))
r.Use(getMiddlewares(logger)...)
r.Mount(metaEndpointsPrefix, meta.NewRouter([]meta.Checker{bundb.NewChecker(db)}))
r.Mount("/api", rest.NewRouter(rest.RouterConfig{
APIKeyVerifier: apiKeySvc,
SessionService: sessionSvc,
@ -147,7 +137,7 @@ func newAPIConfig() (apiConfig, error) {
return cfg, nil
}
func getChiMiddlewares(logger *zap.Logger) chi.Middlewares {
func getMiddlewares(logger *zap.Logger) chi.Middlewares {
return chi.Middlewares{
middleware.RealIP,
chizap.Logger(logger, chizap.WithFilter(omitMetaEndpoints)),