From 06c0a94b31ffed7a19f8ac4d2ad583f34a73047b Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Tue, 10 Dec 2024 10:58:08 +0100 Subject: [PATCH] Move GeolocationDbUpdater from CLI to Core module --- module/CLI/config/dependencies.config.php | 15 ++------------- .../Command/Visit/DownloadGeoLiteDbCommand.php | 6 +++--- .../Visit/DownloadGeoLiteDbCommandTest.php | 6 +++--- .../GeolocationDbUpdateFailedExceptionTest.php | 2 +- .../CLI/test/GeoLite/GeolocationDbUpdaterTest.php | 6 +++--- module/Core/config/dependencies.config.php | 11 +++++++++++ module/Core/config/event_dispatcher.config.php | 2 +- .../Core/src/EventDispatcher/UpdateGeoLiteDb.php | 4 ++-- .../GeolocationDbUpdateFailedException.php | 2 +- .../src/Geolocation}/GeolocationDbUpdater.php | 4 ++-- .../GeolocationDbUpdaterInterface.php | 4 ++-- .../src/Geolocation}/GeolocationResult.php | 2 +- .../test/EventDispatcher/UpdateGeoLiteDbTest.php | 4 ++-- 13 files changed, 34 insertions(+), 34 deletions(-) rename module/{CLI => Core}/src/Exception/GeolocationDbUpdateFailedException.php (97%) rename module/{CLI/src/GeoLite => Core/src/Geolocation}/GeolocationDbUpdater.php (97%) rename module/{CLI/src/GeoLite => Core/src/Geolocation}/GeolocationDbUpdaterInterface.php (72%) rename module/{CLI/src/GeoLite => Core/src/Geolocation}/GeolocationResult.php (77%) diff --git a/module/CLI/config/dependencies.config.php b/module/CLI/config/dependencies.config.php index 76e7c4f5..5df74822 100644 --- a/module/CLI/config/dependencies.config.php +++ b/module/CLI/config/dependencies.config.php @@ -7,9 +7,9 @@ namespace Shlinkio\Shlink\CLI; use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory; use Laminas\ServiceManager\Factory\InvokableFactory; use Shlinkio\Shlink\Common\Doctrine\NoDbNameConnectionFactory; -use Shlinkio\Shlink\Core\Config\Options\TrackingOptions; use Shlinkio\Shlink\Core\Config\Options\UrlShortenerOptions; use Shlinkio\Shlink\Core\Domain\DomainService; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdater; use Shlinkio\Shlink\Core\Matomo; use Shlinkio\Shlink\Core\RedirectRule\ShortUrlRedirectRuleService; use Shlinkio\Shlink\Core\ShortUrl; @@ -17,15 +17,11 @@ use Shlinkio\Shlink\Core\ShortUrl\Helper\ShortUrlStringifier; use Shlinkio\Shlink\Core\Tag\TagService; use Shlinkio\Shlink\Core\Visit; use Shlinkio\Shlink\Installer\Factory\ProcessHelperFactory; -use Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater; -use Shlinkio\Shlink\IpGeolocation\GeoLite2\GeoLite2ReaderFactory; use Shlinkio\Shlink\Rest\Service\ApiKeyService; use Symfony\Component\Console as SymfonyCli; use Symfony\Component\Lock\LockFactory; use Symfony\Component\Process\PhpExecutableFinder; -use const Shlinkio\Shlink\LOCAL_LOCK_FACTORY; - return [ 'dependencies' => [ @@ -34,7 +30,6 @@ return [ SymfonyCli\Helper\ProcessHelper::class => ProcessHelperFactory::class, PhpExecutableFinder::class => InvokableFactory::class, - GeoLite\GeolocationDbUpdater::class => ConfigAbstractFactory::class, RedirectRule\RedirectRuleHandler::class => InvokableFactory::class, Util\ProcessRunner::class => ConfigAbstractFactory::class, @@ -82,12 +77,6 @@ return [ ], ConfigAbstractFactory::class => [ - GeoLite\GeolocationDbUpdater::class => [ - DbUpdater::class, - GeoLite2ReaderFactory::class, - LOCAL_LOCK_FACTORY, - TrackingOptions::class, - ], Util\ProcessRunner::class => [SymfonyCli\Helper\ProcessHelper::class], ApiKey\RoleResolver::class => [DomainService::class, UrlShortenerOptions::class], @@ -107,7 +96,7 @@ return [ Command\ShortUrl\DeleteShortUrlVisitsCommand::class => [ShortUrl\ShortUrlVisitsDeleter::class], Command\ShortUrl\DeleteExpiredShortUrlsCommand::class => [ShortUrl\DeleteShortUrlService::class], - Command\Visit\DownloadGeoLiteDbCommand::class => [GeoLite\GeolocationDbUpdater::class], + Command\Visit\DownloadGeoLiteDbCommand::class => [GeolocationDbUpdater::class], Command\Visit\LocateVisitsCommand::class => [ Visit\Geolocation\VisitLocator::class, Visit\Geolocation\VisitToLocationHelper::class, diff --git a/module/CLI/src/Command/Visit/DownloadGeoLiteDbCommand.php b/module/CLI/src/Command/Visit/DownloadGeoLiteDbCommand.php index 0fdd8ae3..f6110d07 100644 --- a/module/CLI/src/Command/Visit/DownloadGeoLiteDbCommand.php +++ b/module/CLI/src/Command/Visit/DownloadGeoLiteDbCommand.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\CLI\Command\Visit; -use Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationDbUpdaterInterface; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationResult; use Shlinkio\Shlink\CLI\Util\ExitCode; +use Shlinkio\Shlink\Core\Exception\GeolocationDbUpdateFailedException; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdaterInterface; +use Shlinkio\Shlink\Core\Geolocation\GeolocationResult; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Helper\ProgressBar; use Symfony\Component\Console\Input\InputInterface; diff --git a/module/CLI/test/Command/Visit/DownloadGeoLiteDbCommandTest.php b/module/CLI/test/Command/Visit/DownloadGeoLiteDbCommandTest.php index 4d2754f8..2b477f03 100644 --- a/module/CLI/test/Command/Visit/DownloadGeoLiteDbCommandTest.php +++ b/module/CLI/test/Command/Visit/DownloadGeoLiteDbCommandTest.php @@ -9,10 +9,10 @@ use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Shlinkio\Shlink\CLI\Command\Visit\DownloadGeoLiteDbCommand; -use Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationDbUpdaterInterface; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationResult; use Shlinkio\Shlink\CLI\Util\ExitCode; +use Shlinkio\Shlink\Core\Exception\GeolocationDbUpdateFailedException; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdaterInterface; +use Shlinkio\Shlink\Core\Geolocation\GeolocationResult; use ShlinkioTest\Shlink\CLI\Util\CliTestUtils; use Symfony\Component\Console\Tester\CommandTester; diff --git a/module/CLI/test/Exception/GeolocationDbUpdateFailedExceptionTest.php b/module/CLI/test/Exception/GeolocationDbUpdateFailedExceptionTest.php index 519ddf02..a1d6db65 100644 --- a/module/CLI/test/Exception/GeolocationDbUpdateFailedExceptionTest.php +++ b/module/CLI/test/Exception/GeolocationDbUpdateFailedExceptionTest.php @@ -9,7 +9,7 @@ use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use RuntimeException; -use Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException; +use Shlinkio\Shlink\Core\Exception\GeolocationDbUpdateFailedException; use Throwable; class GeolocationDbUpdateFailedExceptionTest extends TestCase diff --git a/module/CLI/test/GeoLite/GeolocationDbUpdaterTest.php b/module/CLI/test/GeoLite/GeolocationDbUpdaterTest.php index 038d570c..dc1d614c 100644 --- a/module/CLI/test/GeoLite/GeolocationDbUpdaterTest.php +++ b/module/CLI/test/GeoLite/GeolocationDbUpdaterTest.php @@ -11,10 +11,10 @@ use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; -use Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationDbUpdater; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationResult; use Shlinkio\Shlink\Core\Config\Options\TrackingOptions; +use Shlinkio\Shlink\Core\Exception\GeolocationDbUpdateFailedException; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdater; +use Shlinkio\Shlink\Core\Geolocation\GeolocationResult; use Shlinkio\Shlink\IpGeolocation\Exception\DbUpdateException; use Shlinkio\Shlink\IpGeolocation\Exception\MissingLicenseException; use Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdaterInterface; diff --git a/module/Core/config/dependencies.config.php b/module/Core/config/dependencies.config.php index 4844e6d5..b16a4c5c 100644 --- a/module/Core/config/dependencies.config.php +++ b/module/Core/config/dependencies.config.php @@ -9,12 +9,16 @@ use Laminas\ServiceManager\Factory\InvokableFactory; use Psr\EventDispatcher\EventDispatcherInterface; use Shlinkio\Shlink\Common\Doctrine\EntityRepositoryFactory; use Shlinkio\Shlink\Core\Config\Options\NotFoundRedirectOptions; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdater; use Shlinkio\Shlink\Core\ShortUrl\Helper\ShortUrlStringifier; use Shlinkio\Shlink\Importer\ImportedLinksProcessorInterface; use Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater; +use Shlinkio\Shlink\IpGeolocation\GeoLite2\GeoLite2ReaderFactory; use Shlinkio\Shlink\IpGeolocation\Resolver\IpLocationResolverInterface; use Symfony\Component\Lock; +use const Shlinkio\Shlink\LOCAL_LOCK_FACTORY; + return [ 'dependencies' => [ @@ -103,6 +107,7 @@ return [ EventDispatcher\PublishingUpdatesGenerator::class => ConfigAbstractFactory::class, + Geolocation\GeolocationDbUpdater::class => ConfigAbstractFactory::class, Geolocation\Middleware\IpGeolocationMiddleware::class => ConfigAbstractFactory::class, Importer\ImportedLinksProcessor::class => ConfigAbstractFactory::class, @@ -240,6 +245,12 @@ return [ EventDispatcher\PublishingUpdatesGenerator::class => [ShortUrl\Transformer\ShortUrlDataTransformer::class], + GeolocationDbUpdater::class => [ + DbUpdater::class, + GeoLite2ReaderFactory::class, + LOCAL_LOCK_FACTORY, + Config\Options\TrackingOptions::class, + ], Geolocation\Middleware\IpGeolocationMiddleware::class => [ IpLocationResolverInterface::class, DbUpdater::class, diff --git a/module/Core/config/event_dispatcher.config.php b/module/Core/config/event_dispatcher.config.php index 4e130fcf..39efa3cb 100644 --- a/module/Core/config/event_dispatcher.config.php +++ b/module/Core/config/event_dispatcher.config.php @@ -6,11 +6,11 @@ namespace Shlinkio\Shlink\Core; use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory; use Psr\EventDispatcher\EventDispatcherInterface; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationDbUpdater; use Shlinkio\Shlink\Common\Cache\RedisPublishingHelper; use Shlinkio\Shlink\Common\Mercure\MercureHubPublishingHelper; use Shlinkio\Shlink\Common\Mercure\MercureOptions; use Shlinkio\Shlink\Common\RabbitMq\RabbitMqPublishingHelper; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdater; use Shlinkio\Shlink\Core\Matomo\MatomoOptions; use Shlinkio\Shlink\Core\Visit\Geolocation\VisitLocator; use Shlinkio\Shlink\Core\Visit\Geolocation\VisitToLocationHelper; diff --git a/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php b/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php index 4e4720c5..7f14cc24 100644 --- a/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php +++ b/module/Core/src/EventDispatcher/UpdateGeoLiteDb.php @@ -6,9 +6,9 @@ namespace Shlinkio\Shlink\Core\EventDispatcher; use Psr\EventDispatcher\EventDispatcherInterface; use Psr\Log\LoggerInterface; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationDbUpdaterInterface; -use Shlinkio\Shlink\CLI\GeoLite\GeolocationResult; use Shlinkio\Shlink\Core\EventDispatcher\Event\GeoLiteDbCreated; +use Shlinkio\Shlink\Core\Geolocation\GeolocationDbUpdaterInterface; +use Shlinkio\Shlink\Core\Geolocation\GeolocationResult; use Throwable; use function sprintf; diff --git a/module/CLI/src/Exception/GeolocationDbUpdateFailedException.php b/module/Core/src/Exception/GeolocationDbUpdateFailedException.php similarity index 97% rename from module/CLI/src/Exception/GeolocationDbUpdateFailedException.php rename to module/Core/src/Exception/GeolocationDbUpdateFailedException.php index ee31ac82..f3c3f65f 100644 --- a/module/CLI/src/Exception/GeolocationDbUpdateFailedException.php +++ b/module/Core/src/Exception/GeolocationDbUpdateFailedException.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Shlinkio\Shlink\CLI\Exception; +namespace Shlinkio\Shlink\Core\Exception; use RuntimeException; use Throwable; diff --git a/module/CLI/src/GeoLite/GeolocationDbUpdater.php b/module/Core/src/Geolocation/GeolocationDbUpdater.php similarity index 97% rename from module/CLI/src/GeoLite/GeolocationDbUpdater.php rename to module/Core/src/Geolocation/GeolocationDbUpdater.php index 0d3d96db..73515a45 100644 --- a/module/CLI/src/GeoLite/GeolocationDbUpdater.php +++ b/module/Core/src/Geolocation/GeolocationDbUpdater.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace Shlinkio\Shlink\CLI\GeoLite; +namespace Shlinkio\Shlink\Core\Geolocation; use Cake\Chronos\Chronos; use Closure; use GeoIp2\Database\Reader; use MaxMind\Db\Reader\Metadata; -use Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException; use Shlinkio\Shlink\Core\Config\Options\TrackingOptions; +use Shlinkio\Shlink\Core\Exception\GeolocationDbUpdateFailedException; use Shlinkio\Shlink\IpGeolocation\Exception\DbUpdateException; use Shlinkio\Shlink\IpGeolocation\Exception\MissingLicenseException; use Shlinkio\Shlink\IpGeolocation\Exception\WrongIpException; diff --git a/module/CLI/src/GeoLite/GeolocationDbUpdaterInterface.php b/module/Core/src/Geolocation/GeolocationDbUpdaterInterface.php similarity index 72% rename from module/CLI/src/GeoLite/GeolocationDbUpdaterInterface.php rename to module/Core/src/Geolocation/GeolocationDbUpdaterInterface.php index ba0f0e70..1e583e20 100644 --- a/module/CLI/src/GeoLite/GeolocationDbUpdaterInterface.php +++ b/module/Core/src/Geolocation/GeolocationDbUpdaterInterface.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace Shlinkio\Shlink\CLI\GeoLite; +namespace Shlinkio\Shlink\Core\Geolocation; -use Shlinkio\Shlink\CLI\Exception\GeolocationDbUpdateFailedException; +use Shlinkio\Shlink\Core\Exception\GeolocationDbUpdateFailedException; interface GeolocationDbUpdaterInterface { diff --git a/module/CLI/src/GeoLite/GeolocationResult.php b/module/Core/src/Geolocation/GeolocationResult.php similarity index 77% rename from module/CLI/src/GeoLite/GeolocationResult.php rename to module/Core/src/Geolocation/GeolocationResult.php index 85976886..3b472d09 100644 --- a/module/CLI/src/GeoLite/GeolocationResult.php +++ b/module/Core/src/Geolocation/GeolocationResult.php @@ -1,6 +1,6 @@