Skip to content

Commit a994598

Browse files
joyet-simonjoyet.simon
andauthored
Fix: logger service injection (#581)
* fix: update constructor parameters to require LoggerService * fix: add LoggerService dependency to ConfigFormMapper and update related tests * fix: inject ConfigService into AbstractLoggerService to simulate MullLogger --------- Co-authored-by: joyet.simon <joyet.simon@getalma.eu>
1 parent 39a1ed5 commit a994598

14 files changed

Lines changed: 225 additions & 36 deletions

File tree

includes/Application/Entity/Form/FeePlanConfiguration.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use Alma\Gateway\Infrastructure\Adapter\FeePlanAdapter;
1111
use Alma\Gateway\Infrastructure\Service\LoggerService;
1212
use Psr\Log\LoggerInterface;
13-
use Psr\Log\NullLogger;
1413

1514
/**
1615
* Class FeePlanDataForm
@@ -48,14 +47,14 @@ class FeePlanConfiguration {
4847
* @param int $minAmount
4948
* @param int $maxAmount
5049
* @param bool $enabled
51-
* @param LoggerService|null $loggerService
50+
* @param LoggerService $loggerService
5251
*/
53-
public function __construct( string $planKey, int $minAmount, int $maxAmount, bool $enabled, ?LoggerService $loggerService = null ) {
52+
public function __construct( string $planKey, int $minAmount, int $maxAmount, bool $enabled, LoggerService $loggerService ) {
5453
$this->planKey = $planKey;
5554
$this->minAmount = $minAmount;
5655
$this->maxAmount = $maxAmount;
5756
$this->enabled = $enabled;
58-
$this->loggerService = $loggerService ?? new NullLogger();
57+
$this->loggerService = $loggerService;
5958
}
6059

6160
/**

includes/Application/Provider/FeePlanProvider.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
use Alma\Plugin\Application\Port\FeePlanProviderInterface;
1616
use Alma\Plugin\Infrastructure\Adapter\FeePlanListInterface;
1717
use Psr\Log\LoggerInterface;
18-
use Psr\Log\NullLogger;
1918

2019
class FeePlanProvider implements FeePlanProviderInterface, ProviderInterface {
2120

@@ -32,11 +31,11 @@ class FeePlanProvider implements FeePlanProviderInterface, ProviderInterface {
3231
* FeePlanProvider constructor.
3332
*
3433
* @param MerchantEndpoint $merchantEndpoint
35-
* @param LoggerService|null $loggerService
34+
* @param LoggerService $loggerService
3635
*/
37-
public function __construct( MerchantEndpoint $merchantEndpoint, ?LoggerService $loggerService = null ) {
36+
public function __construct( MerchantEndpoint $merchantEndpoint, LoggerService $loggerService ) {
3837
$this->merchantEndpoint = $merchantEndpoint;
39-
$this->loggerService = $loggerService ?? new NullLogger();
38+
$this->loggerService = $loggerService;
4039
}
4140

4241
/**

includes/Application/Provider/MerchantProvider.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
use Alma\Gateway\Infrastructure\Service\LoggerService;
1515
use Alma\Plugin\Application\Port\MerchantProviderInterface;
1616
use Psr\Log\LoggerInterface;
17-
use Psr\Log\NullLogger;
1817

1918
class MerchantProvider implements MerchantProviderInterface, ProviderInterface {
2019

@@ -28,10 +27,11 @@ class MerchantProvider implements MerchantProviderInterface, ProviderInterface {
2827
* MerchantProvider constructor.
2928
*
3029
* @param MerchantEndpoint $merchantEndpoint The merchant endpoint to use for API calls.
30+
* @param LoggerService $loggerService
3131
*/
32-
public function __construct( MerchantEndpoint $merchantEndpoint, ?LoggerService $loggerService = null ) {
32+
public function __construct( MerchantEndpoint $merchantEndpoint, LoggerService $loggerService ) {
3333
$this->merchantEndpoint = $merchantEndpoint;
34-
$this->loggerService = $loggerService ?? new NullLogger();
34+
$this->loggerService = $loggerService;
3535
}
3636

3737
/**

includes/Application/Provider/PaymentProvider.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
use Alma\Gateway\Infrastructure\Service\LoggerService;
1818
use Alma\Plugin\Application\Port\PaymentProviderInterface;
1919
use Psr\Log\LoggerInterface;
20-
use Psr\Log\NullLogger;
2120

2221
class PaymentProvider implements PaymentProviderInterface, ProviderInterface {
2322

@@ -31,10 +30,11 @@ class PaymentProvider implements PaymentProviderInterface, ProviderInterface {
3130
* PaymentService constructor.
3231
*
3332
* @param PaymentEndpoint $paymentEndpoint The payment endpoint to use for API calls.
33+
* @param LoggerService $loggerService
3434
*/
35-
public function __construct( PaymentEndpoint $paymentEndpoint, ?LoggerService $loggerService = null ) {
35+
public function __construct( PaymentEndpoint $paymentEndpoint, LoggerService $loggerService ) {
3636
$this->paymentEndpoint = $paymentEndpoint;
37-
$this->loggerService = $loggerService ?? new NullLogger();
37+
$this->loggerService = $loggerService;
3838
}
3939

4040
/**

includes/Application/Service/AuthenticationService.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
use Alma\Client\Domain\ValueObject\Environment;
1414
use Alma\Gateway\Infrastructure\Service\LoggerService;
1515
use Psr\Log\LoggerInterface;
16-
use Psr\Log\NullLogger;
1716

1817
class AuthenticationService {
1918

@@ -23,10 +22,10 @@ class AuthenticationService {
2322
/**
2423
* AuthenticationService constructor.
2524
*
26-
* @param LoggerService|null $loggerService
25+
* @param LoggerService $loggerService
2726
*/
28-
public function __construct( ?LoggerService $loggerService = null ) {
29-
$this->loggerService = $loggerService ?? new NullLogger();
27+
public function __construct( LoggerService $loggerService ) {
28+
$this->loggerService = $loggerService ;
3029
}
3130

3231
/**

includes/Application/Service/IpnService.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
use Alma\Gateway\Plugin;
2222
use Alma\Plugin\Infrastructure\Helper\NavigationHelperInterface;
2323
use Psr\Log\LoggerInterface;
24-
use Psr\Log\NullLogger;
2524

2625
/**
2726
* Class IpnService
@@ -57,14 +56,14 @@ public function __construct(
5756
PaymentProvider $paymentService,
5857
NavigationHelperInterface $navigationHelper,
5958
IpnHelper $ipnHelper,
60-
?LoggerService $loggerService = null
59+
LoggerService $loggerService
6160
) {
6261
$this->configService = $configService;
6362
$this->fraudService = $fraudService;
6463
$this->paymentService = $paymentService;
6564
$this->navigationHelper = $navigationHelper;
6665
$this->ipnHelper = $ipnHelper;
67-
$this->loggerService = $loggerService ?? new NullLogger();
66+
$this->loggerService = $loggerService;
6867
}
6968

7069
/**

includes/Infrastructure/Mapper/ConfigFormMapper.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Alma\Gateway\Application\Helper\DisplayHelper;
1414
use Alma\Gateway\Application\Service\AuthenticationService;
1515
use Alma\Gateway\Application\Service\ConfigService;
16+
use Alma\Gateway\Infrastructure\Service\LoggerService;
1617

1718
class ConfigFormMapper {
1819

@@ -22,10 +23,13 @@ class ConfigFormMapper {
2223
private array $settings;
2324
/** @var AuthenticationService */
2425
private AuthenticationService $authentication_service;
26+
/** @var LoggerService */
27+
private LoggerService $logger_service;
2528

26-
public function __construct( ConfigService $config_service, AuthenticationService $authentication_service ) {
29+
public function __construct( ConfigService $config_service, AuthenticationService $authentication_service, LoggerService $logger_service ) {
2730
$this->config_service = $config_service;
2831
$this->authentication_service = $authentication_service;
32+
$this->logger_service = $logger_service;
2933
}
3034

3135
/**
@@ -124,7 +128,8 @@ private function process_fee_plan_configuration_list(): FeePlanConfigurationList
124128
$key,
125129
$value[ GatewayConfigurationForm::MIN_AMOUNT_SUFFIX ],
126130
$value[ GatewayConfigurationForm::MAX_AMOUNT_SUFFIX ],
127-
$value[ GatewayConfigurationForm::ENABLED_SUFFIX ]
131+
$value[ GatewayConfigurationForm::ENABLED_SUFFIX ],
132+
$this->logger_service
128133
);
129134
$fee_plan_configuration_array[] = $feePlanConfiguration;
130135
}

includes/Infrastructure/Repository/GatewayRepository.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
use Alma\Gateway\Plugin;
2222
use Alma\Plugin\Infrastructure\Repository\GatewayRepositoryInterface;
2323
use Psr\Log\LoggerInterface;
24-
use Psr\Log\NullLogger;
2524

2625
class GatewayRepository implements GatewayRepositoryInterface {
2726

@@ -53,8 +52,8 @@ class GatewayRepository implements GatewayRepositoryInterface {
5352
CreditGatewayBlock::class,
5453
];
5554

56-
public function __construct( ?LoggerService $loggerService = null ) {
57-
$this->loggerService = $loggerService ?? new NullLogger();
55+
public function __construct( LoggerService $loggerService ) {
56+
$this->loggerService = $loggerService;
5857
}
5958

6059
/**

includes/Infrastructure/Service/AbstractLoggerService.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
die( 'Not allowed' ); // Exit if accessed directly.
77
}
88

9+
use Alma\Gateway\Application\Service\ConfigService;
910
use Psr\Log\InvalidArgumentException;
1011
use Psr\Log\LoggerInterface;
1112
use Psr\Log\LogLevel;
@@ -22,10 +23,12 @@ abstract class AbstractLoggerService implements LoggerInterface {
2223
* @var string
2324
*/
2425
private string $source;
26+
private ConfigService $configService;
2527

26-
public function __construct( string $source = 'alma' ) {
28+
public function __construct( ConfigService $configService, string $source = 'alma' ) {
2729
$this->woo_logger = new WC_Logger();
2830
$this->source = $source;
31+
$this->configService = $configService;
2932
}
3033

3134
/**
@@ -40,6 +43,9 @@ public function __construct( string $source = 'alma' ) {
4043
*
4144
*/
4245
public function log( $level, $message, array $context = array() ): void {
46+
if (! $this->configService->isDebug() ) {
47+
return;
48+
}
4349
if ( ! in_array( $level, $this->get_psr_levels(), true ) ) {
4450
throw new InvalidArgumentException( "Invalid log level: $level" );
4551
}

includes/Infrastructure/Service/GatewayService.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use Alma\Gateway\Infrastructure\Repository\UserRepository;
2424
use Alma\Gateway\Plugin;
2525
use Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry;
26+
use Psr\Log\LoggerInterface;
2627

2728
class GatewayService {
2829

@@ -35,16 +36,21 @@ class GatewayService {
3536

3637
private BusinessEventsService $businessEventsService;
3738

39+
/** @var LoggerInterface */
40+
private LoggerInterface $loggerService;
41+
3842
public function __construct(
3943
PaymentProviderFactory $paymentProviderFactory,
4044
GatewayRepository $gatewayRepository,
4145
AssetsService $assetsService,
42-
BusinessEventsService $businessEventsService
46+
BusinessEventsService $businessEventsService,
47+
LoggerService $loggerService
4348
) {
4449
$this->paymentProviderFactory = $paymentProviderFactory;
4550
$this->gatewayRepository = $gatewayRepository;
4651
$this->assetsService = $assetsService;
4752
$this->businessEventsService = $businessEventsService;
53+
$this->loggerService = $loggerService ;
4854
}
4955

5056
/**
@@ -102,7 +108,7 @@ public function woocommerceOrderStatusChanged(
102108
try {
103109
$this->businessEventsService->onOrderConfirmed( $oldStatus, $newStatus, $order );
104110
} catch ( BusinessEventsServiceException $e ) {
105-
throw new GatewayServiceException( 'Order confirmed does not sent', 0, $e );
111+
$this->loggerService->debug($e->getMessage());
106112
}
107113
}
108114

0 commit comments

Comments
 (0)