some refactor

This commit is contained in:
Pavel 2024-01-11 15:07:17 +03:00
parent 9377a9fe35
commit 4c43a0d87b
8 changed files with 27 additions and 27 deletions

@ -11,20 +11,19 @@ import (
"context"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
"time"
)
func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
logger.Info("Запуск приложения", zap.String("AppName", cfg.AppName))
mdb, err := initialize.InitializeMongoDB(ctx, cfg)
mdb, err := initialize.MongoDB(ctx, cfg)
if err != nil {
logger.Error("Failed to initialize MongoDB", zap.Error(err))
return err
}
rdb, err := initialize.InitializeRedis(ctx, cfg)
encrypt := initialize.InitializeEncrypt(cfg)
rdb, err := initialize.Redis(ctx, cfg)
encrypt := initialize.Encrypt(cfg)
codewordRepo := repository.NewCodewordRepository(repository.Deps{Rdb: rdb, Mdb: mdb.Collection("codeword")})
userRepo := repository.NewUserRepository(repository.Deps{Rdb: nil, Mdb: mdb.Collection("users")})
recoveryEmailSender := initialize.RecoveryEmailSender(cfg, logger)
@ -68,7 +67,7 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
<-ctx.Done()
if err := shutdownApp(server, mdb, logger); err != nil {
if err := shutdownApp(ctx, server, mdb, logger); err != nil {
return err
}
logger.Info("The application has stopped")
@ -77,22 +76,19 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
// TODO возможно стоит вынести в отдельные файлы или отказаться от разделения на отдельные методы
func shutdownApp(server *httpserver.Server, mdb *mongo.Database, logger *zap.Logger) error {
if err := shutdownHTTPServer(server, logger); err != nil {
func shutdownApp(ctx context.Context, server *httpserver.Server, mdb *mongo.Database, logger *zap.Logger) error {
if err := shutdownHTTPServer(ctx, server, logger); err != nil {
return err
}
if err := shutdownMongoDB(mdb, logger); err != nil {
if err := shutdownMongoDB(ctx, mdb, logger); err != nil {
return err
}
return nil
}
func shutdownHTTPServer(server *httpserver.Server, logger *zap.Logger) error {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
func shutdownHTTPServer(ctx context.Context, server *httpserver.Server, logger *zap.Logger) error {
if err := server.Shutdown(ctx); err != nil {
logger.Error("Error stopping HTTP server", zap.Error(err))
return err
@ -100,10 +96,7 @@ func shutdownHTTPServer(server *httpserver.Server, logger *zap.Logger) error {
return nil
}
func shutdownMongoDB(mdb *mongo.Database, logger *zap.Logger) error {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
func shutdownMongoDB(ctx context.Context, mdb *mongo.Database, logger *zap.Logger) error {
if err := mdb.Client().Disconnect(ctx); err != nil {
logger.Error("Error when closing MongoDB connection", zap.Error(err))
return err

@ -4,7 +4,7 @@ import (
"codeword/internal/utils/encrypt"
)
func InitializeEncrypt(cfg Config) *encrypt.Encrypt {
func Encrypt(cfg Config) *encrypt.Encrypt {
return encrypt.New(&encrypt.EncryptDeps{
PublicKey: cfg.PublicCurveKey,
PrivateKey: cfg.PrivateCurveKey,

@ -7,7 +7,7 @@ import (
"time"
)
func InitializeMongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) {
func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) {
dbConfig := &mdb.Configuration{
MongoHost: cfg.MongoHost,
MongoPort: cfg.MongoPort,

@ -5,7 +5,7 @@ import (
"github.com/go-redis/redis/v8"
)
func InitializeRedis(ctx context.Context, cfg Config) (*redis.Client, error) {
func Redis(ctx context.Context, cfg Config) (*redis.Client, error) {
rdb := redis.NewClient(&redis.Options{
Addr: cfg.RedisAddr,
Password: cfg.RedisPassword,

@ -81,5 +81,8 @@ func (r *codewordRepository) GetRecoveryRecord(ctx context.Context, key string)
// пингует в монгу чтобы проверить подключение
func (r *codewordRepository) Ping(ctx context.Context) error {
return r.mdb.Database().Client().Ping(ctx, readpref.Primary())
if err := r.mdb.Database().Client().Ping(ctx, readpref.Primary()); err != nil {
return err
}
return nil
}

@ -35,7 +35,11 @@ func NewServer(config ServerConfig) *Server {
}
func (s *Server) Start(addr string) error {
return s.app.Listen(addr)
if err := s.app.Listen(addr); err != nil {
s.Logger.Error("Failed to start server", zap.Error(err))
return err
}
return nil
}
func (s *Server) Shutdown(ctx context.Context) error {

@ -116,7 +116,7 @@ func (s *RecoveryService) GetRecoveryRecord(ctx context.Context, key string) (*m
// сомнительный вариант но как я думаю верный, что false==err
result, err := s.encrypt.VerifySignature(byteKey)
if err != nil || result == false {
if err != nil || !result {
s.logger.Error("Failed to verify signature", zap.String("signature", key), zap.Error(err))
return nil, err
}

@ -13,19 +13,19 @@ type Deps struct {
Mongo *mongo.Collection
}
type purgeWorker struct {
type PurgeWorker struct {
logger *zap.Logger
mongo *mongo.Collection
}
func NewRecoveryWC(deps Deps) *purgeWorker {
return &purgeWorker{
func NewRecoveryWC(deps Deps) *PurgeWorker {
return &PurgeWorker{
logger: deps.Logger,
mongo: deps.Mongo,
}
}
func (wc *purgeWorker) Start(ctx context.Context) {
func (wc *PurgeWorker) Start(ctx context.Context) {
ticker := time.NewTicker(1 * time.Hour)
defer ticker.Stop()
@ -40,7 +40,7 @@ func (wc *purgeWorker) Start(ctx context.Context) {
}
}
func (wc *purgeWorker) processTasks(ctx context.Context) {
func (wc *PurgeWorker) processTasks(ctx context.Context) {
wc.logger.Info("Checking cleaning records")
oneHourAgo := time.Now().Add(-1 * time.Hour)