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