package mock import ( "gitea.pena/PenaSide/treasurer/internal/errors" "gitea.pena/PenaSide/treasurer/pkg/validate" "go.uber.org/zap" ) type Deps struct { Logger *zap.Logger MockServiceHost string Enabled bool YoomoneyMockService *YoomoneyMockService } type Service struct { logger *zap.Logger mockServiceHost string enabled bool yoomoneyMockService *YoomoneyMockService } func New(deps Deps) (*Service, errors.Error) { if deps.Logger == nil { return nil, errors.NewWithMessage("logger is nil on ", errors.ErrInvalidArgs) } if deps.YoomoneyMockService == nil { return nil, errors.NewWithMessage("YoomoneyMockService is nil on ", errors.ErrInvalidArgs) } if validate.IsStringEmpty(deps.MockServiceHost) { return nil, errors.NewWithMessage("mock service host is empty on ", errors.ErrInvalidArgs) } return &Service{ logger: deps.Logger, mockServiceHost: deps.MockServiceHost, yoomoneyMockService: deps.YoomoneyMockService, enabled: deps.Enabled, }, nil } func (s *Service) Register() bool { if !s.enabled { s.logger.Info("register mocks is disabled") return false } if err := s.yoomoneyMockService.Register(s.mockServiceHost); err != nil { s.logger.Error("failed to register yoomoney mocks", zap.Error(err), zap.String("host", s.mockServiceHost)) return false } return true }