feat(06-sonarqube-quality): split god classes — ShopproOrdersSyncService + AllegroIntegrationController (06-05)

ShopproOrdersSyncService: 39→9 methods via ShopproOrderMapper + ShopproProductImageResolver.
AllegroIntegrationController: 35→25 methods via AllegroStatusMappingController + AllegroDeliveryMappingController.
S1448 violations: 6x→2x. CronHandlerFactory and routes/web.php updated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 17:25:59 +01:00
parent ddf767926e
commit eb5c9bf345
8 changed files with 1421 additions and 1271 deletions

View File

@@ -11,13 +11,16 @@ use App\Modules\Orders\OrdersController;
use App\Modules\Orders\OrderImportRepository;
use App\Modules\Orders\OrdersRepository;
use App\Modules\Settings\AllegroApiClient;
use App\Modules\Settings\AllegroDeliveryMappingController;
use App\Modules\Settings\AllegroIntegrationController;
use App\Modules\Settings\AllegroIntegrationRepository;
use App\Modules\Settings\AllegroOAuthClient;
use App\Modules\Settings\AllegroOrderImportService;
use App\Modules\Settings\AllegroStatusDiscoveryService;
use App\Modules\Settings\AllegroStatusMappingController;
use App\Modules\Settings\AllegroTokenManager;
use App\Modules\Settings\AllegroStatusMappingRepository;
use App\Modules\Settings\OrderStatusRepository;
use App\Modules\Settings\ApaczkaApiClient;
use App\Modules\Settings\ApaczkaIntegrationController;
use App\Modules\Settings\ApaczkaIntegrationRepository;
@@ -65,6 +68,26 @@ return static function (Application $app): void {
$app->db(),
(string) $app->config('app.integrations.secret', '')
);
$allegroStatusDiscoveryService = new AllegroStatusDiscoveryService(
$allegroTokenManager,
new AllegroApiClient(),
$allegroStatusMappingRepository
);
$allegroStatusMappingController = new AllegroStatusMappingController(
$translator,
$allegroStatusMappingRepository,
$app->orderStatuses(),
$allegroStatusDiscoveryService
);
$allegroDeliveryMappingController = new AllegroDeliveryMappingController(
$translator,
$allegroIntegrationRepository,
$allegroOAuthClient,
new AllegroApiClient(),
$carrierDeliveryMappings,
$apaczkaIntegrationRepository,
$apaczkaApiClient
);
$allegroIntegrationController = new AllegroIntegrationController(
$template,
$translator,
@@ -82,16 +105,9 @@ return static function (Application $app): void {
$allegroStatusMappingRepository,
new OrdersRepository($app->db())
),
new AllegroStatusDiscoveryService(
$allegroTokenManager,
new AllegroApiClient(),
$allegroStatusMappingRepository
),
$allegroStatusDiscoveryService,
(string) $app->config('app.url', ''),
$carrierDeliveryMappings,
new AllegroApiClient(),
$apaczkaIntegrationRepository,
$apaczkaApiClient
$allegroDeliveryMappingController
);
$apaczkaIntegrationController = new ApaczkaIntegrationController(
$template,
@@ -231,11 +247,11 @@ return static function (Application $app): void {
$router->post('/settings/integrations/allegro/settings/save', [$allegroIntegrationController, 'saveImportSettings'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/oauth/start', [$allegroIntegrationController, 'startOAuth'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/import-single', [$allegroIntegrationController, 'importSingleOrder'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/save', [$allegroIntegrationController, 'saveStatusMapping'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/save-bulk', [$allegroIntegrationController, 'saveStatusMappingsBulk'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/delete', [$allegroIntegrationController, 'deleteStatusMapping'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/sync', [$allegroIntegrationController, 'syncStatusesFromAllegro'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/delivery/save', [$allegroIntegrationController, 'saveDeliveryMappings'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/save', [$allegroStatusMappingController, 'saveStatusMapping'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/save-bulk', [$allegroStatusMappingController, 'saveStatusMappingsBulk'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/delete', [$allegroStatusMappingController, 'deleteStatusMapping'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/statuses/sync', [$allegroStatusMappingController, 'syncStatusesFromAllegro'], [$authMiddleware]);
$router->post('/settings/integrations/allegro/delivery/save', [$allegroDeliveryMappingController, 'saveDeliveryMappings'], [$authMiddleware]);
$router->get('/settings/integrations/allegro/oauth/callback', [$allegroIntegrationController, 'oauthCallback']);
$router->get('/settings/integrations/apaczka', [$apaczkaIntegrationController, 'index'], [$authMiddleware]);
$router->post('/settings/integrations/apaczka/save', [$apaczkaIntegrationController, 'save'], [$authMiddleware]);