diff --git a/config/integration/refund-plugin/services.php b/config/integration/refund-plugin/services.php index df1e9573b..5d0d2fac0 100644 --- a/config/integration/refund-plugin/services.php +++ b/config/integration/refund-plugin/services.php @@ -6,6 +6,6 @@ return static function (ContainerConfigurator $container): void { if (class_exists(\Sylius\RefundPlugin\SyliusRefundPlugin::class)) { - $container->import('services/**/*.xml'); + $container->import('services/**/*.php'); } }; diff --git a/config/services.php b/config/services.php new file mode 100644 index 000000000..0afc0470c --- /dev/null +++ b/config/services.php @@ -0,0 +1,27 @@ +services(); + + $container->import('services/**/*.php'); + $container->import('integration/refund-plugin/services.php'); + + + $services->set('sylius_mollie.refund.guard.mollie_payment_refund', PaymentRefundGuard::class) + ->public() + ->args(['%kernel.bundles%']); + + $services->alias(PaymentRefundGuardInterface::class, 'sylius_mollie.refund.guard.mollie_payment_refund'); + + $services->set('sylius_mollie.refund.guard.order_payment_refund', OrderPaymentRefundGuard::class) + ->public(); + + $services->alias(OrderPaymentRefundGuardInterface::class, 'sylius_mollie.refund.guard.order_payment_refund'); +}; diff --git a/config/services.xml b/config/services.xml deleted file mode 100644 index 7798be7bf..000000000 --- a/config/services.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - %kernel.bundles% - - - - - - - diff --git a/config/services/api.php b/config/services/api.php new file mode 100644 index 000000000..fb8f305a4 --- /dev/null +++ b/config/services/api.php @@ -0,0 +1,54 @@ +services(); + + $services->set('sylius_mollie.api.payment_configuration_provider.mollie', MolliePaymentConfigurationProvider::class) + ->args([service('router')]) + ->tag('sylius.api.payment_method_handler'); + + $services->set('sylius_mollie.api.controller.get_mollie_methods', GetMollieMethodsAction::class) + ->public() + ->args([ + service('sylius_mollie.repository.query.order.by_token_for_available_methods'), + service('sylius_mollie.payum.checker.mollie_gateway_factory'), + service('sylius_mollie.resolver.payment_methods'), + service('liip_imagine.cache.manager'), + ]); + + $services->set('sylius_mollie.api.controller.select_mollie_method', SelectMollieMethodAction::class) + ->public() + ->args([ + service('sylius.repository.order'), + service('doctrine.orm.entity_manager'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius_mollie.payum.checker.mollie_gateway_factory'), + service('sylius_mollie.repository.mollie_customer'), + service('sylius_mollie.custom_factory.mollie_subscription'), + service('sylius_mollie.repository.mollie_subscription'), + service('sylius_mollie.creator.payment_data'), + service('sylius_mollie.logger.mollie_logger_action'), + ]); + + $services->set('sylius_mollie.api.controller.update_payment_status', UpdatePaymentStatusAction::class) + ->public() + ->args([ + service('sylius.repository.order'), + service('doctrine.orm.entity_manager'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius_abstraction.state_machine'), + service('sylius_mollie.logger.mollie_logger_action'), + ]); + + $services->set('sylius_mollie.api.open_api.mollie_documentation_modifier', MollieDocumentationModifier::class) + ->args(['%sylius.security.api_shop_route%']) + ->tag('sylius.open_api.modifier'); +}; diff --git a/config/services/api.xml b/config/services/api.xml deleted file mode 100644 index 7420eccda..000000000 --- a/config/services/api.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius.security.api_shop_route% - - - - - diff --git a/config/services/apple_pay/checker.php b/config/services/apple_pay/checker.php new file mode 100644 index 000000000..ef0763a20 --- /dev/null +++ b/config/services/apple_pay/checker.php @@ -0,0 +1,19 @@ +services(); + + $services->set('sylius_mollie.apple_pay.checker.apple_pay_enabled', ApplePayEnabledChecker::class) + ->public() + ->args([ + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius.payment_methods_resolver.default')->nullOnInvalid(), + ]); + + $services->alias(ApplePayEnabledCheckerInterface::class, 'sylius_mollie.apple_pay.checker.apple_pay_enabled'); +}; diff --git a/config/services/apple_pay/checker.xml b/config/services/apple_pay/checker.xml deleted file mode 100644 index 81cb411dc..000000000 --- a/config/services/apple_pay/checker.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/services/apple_pay/provider.php b/config/services/apple_pay/provider.php new file mode 100644 index 000000000..963bfa0bc --- /dev/null +++ b/config/services/apple_pay/provider.php @@ -0,0 +1,44 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.apple_pay.provider.apple_pay_direct', ApplePayDirectProvider::class) + ->args([ + service('sylius_mollie.apple_pay.resolver.address'), + service('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'), + service('sylius_mollie.provider.customer'), + service('sylius_mollie.apple_pay.provider.apple_pay_direct_payment'), + ]); + + $services->alias(ApplePayDirectProviderInterface::class, 'sylius_mollie.apple_pay.provider.apple_pay_direct'); + + $services->set('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct', OrderPaymentApplePayDirectProvider::class) + ->args([ + service('sylius.custom_factory.payment'), + service('sylius_abstraction.state_machine'), + service('sylius.repository.payment_method'), + service('sylius.repository.gateway_config'), + service('sylius_mollie.payum.provider.payment_token'), + service('payum'), + ]); + + $services->alias(OrderPaymentApplePayDirectProviderInterface::class, 'sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'); + + $services->set('sylius_mollie.apple_pay.provider.apple_pay_direct_payment', ApplePayDirectPaymentProvider::class) + ->args([service('sylius_mollie.apple_pay.resolver.apple_pay_direct_payment_type')]); + + $services->alias(ApplePayDirectPaymentProviderInterface::class, 'sylius_mollie.apple_pay.provider.apple_pay_direct_payment'); +}; diff --git a/config/services/apple_pay/provider.xml b/config/services/apple_pay/provider.xml deleted file mode 100644 index 1d5a3aaf9..000000000 --- a/config/services/apple_pay/provider.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/apple_pay/resolver.php b/config/services/apple_pay/resolver.php new file mode 100644 index 000000000..a91be3d5f --- /dev/null +++ b/config/services/apple_pay/resolver.php @@ -0,0 +1,59 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.apple_pay.resolver.address', AddressResolver::class) + ->args([ + service('sylius_mollie.apple_pay.validator.apple_pay_address'), + service('sylius.repository.customer'), + service('sylius.custom_factory.address'), + service('sylius.factory.customer'), + ]); + + $services->alias(AddressResolverInterface::class, 'sylius_mollie.apple_pay.resolver.address'); + + $services->set('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_order_payment', ApplePayDirectApiOrderPaymentResolver::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius_mollie.converter.order'), + service('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'), + service('sylius_mollie.resolver.payment_locale'), + service('sylius_mollie.provider.divisor'), + ]); + + $services->alias(ApplePayDirectApiOrderPaymentResolverInterface::class, 'sylius_mollie.apple_pay.resolver.apple_pay_direct_api_order_payment'); + + $services->set('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_payment', ApplePayDirectApiPaymentResolver::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'), + ]); + + $services->alias(ApplePayDirectApiPaymentResolverInterface::class, 'sylius_mollie.apple_pay.resolver.apple_pay_direct_api_payment'); + + $services->set('sylius_mollie.apple_pay.resolver.apple_pay_direct_payment_type', ApplePayDirectPaymentTypeResolver::class) + ->args([ + service('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_payment'), + service('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_order_payment'), + service('sylius_mollie.converter.int_to_string'), + ]); + + $services->alias(ApplePayDirectPaymentTypeResolverInterface::class, 'sylius_mollie.apple_pay.resolver.apple_pay_direct_payment_type'); +}; diff --git a/config/services/apple_pay/resolver.xml b/config/services/apple_pay/resolver.xml deleted file mode 100644 index 76e57cc63..000000000 --- a/config/services/apple_pay/resolver.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/apple_pay/validator.php b/config/services/apple_pay/validator.php new file mode 100644 index 000000000..5ed822836 --- /dev/null +++ b/config/services/apple_pay/validator.php @@ -0,0 +1,17 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.apple_pay.validator.apple_pay_address', ApplePayAddressValidator::class); + + $services->alias(ApplePayAddressValidatorInterface::class, 'sylius_mollie.apple_pay.validator.apple_pay_address'); +}; diff --git a/config/services/apple_pay/validator.xml b/config/services/apple_pay/validator.xml deleted file mode 100644 index 2a1154ce3..000000000 --- a/config/services/apple_pay/validator.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/config/services/calculator.php b/config/services/calculator.php new file mode 100644 index 000000000..45c071a5f --- /dev/null +++ b/config/services/calculator.php @@ -0,0 +1,59 @@ +services(); + + $services->set('sylius_mollie.calculator.calculate_tax_amount', CalculateTaxAmount::class) + ->public() + ->args([service('sylius_mollie.converter.int_to_string')]); + + $services->alias(CalculateTaxAmountInterface::class, 'sylius_mollie.calculator.calculate_tax_amount'); + + $services->set('sylius_mollie.calculator.payment_fee.fixed_amount', FixedAmountCalculator::class) + ->args([ + service('sylius.factory.adjustment'), + service('sylius_mollie.provider.divisor'), + ]) + ->tag('sylius_mollie.payment_fee.calculator'); + + $services->set('sylius_mollie.calculator.payment_fee.percentage', PercentageCalculator::class) + ->args([ + service('sylius.factory.adjustment'), + service('sylius_mollie.provider.divisor'), + ]) + ->tag('sylius_mollie.payment_fee.calculator'); + + $services->set('sylius_mollie.calculator.payment_fee.fixed_amount_and_percentage', FixedAmountAndPercentageCalculator::class) + ->args([ + service('sylius.factory.adjustment'), + service('sylius_mollie.calculator.payment_fee.percentage'), + service('sylius_mollie.calculator.payment_fee.fixed_amount'), + service('sylius_mollie.provider.divisor'), + ]) + ->tag('sylius_mollie.payment_fee.calculator'); + + $services->set('sylius_mollie.calculator.payment_fee.no_fee', NoFeeCalculator::class) + ->tag('sylius_mollie.payment_fee.calculator'); + + $services->set('sylius_mollie.calculator.payment_fee.composite', CompositePaymentSurchargeCalculator::class) + ->args([tagged_iterator('sylius_mollie.payment_fee.calculator')]); + + $services->alias(PaymentSurchargeCalculatorInterface::class, 'sylius_mollie.calculator.payment_fee.composite'); + + $services->set('sylius_mollie.calculator.clearer.payment_fee_adjustment', PaymentFeeAdjustmentClearer::class); + + $services->alias(PaymentFeeAdjustmentClearerInterface::class, 'sylius_mollie.calculator.clearer.payment_fee_adjustment'); +}; diff --git a/config/services/calculator.xml b/config/services/calculator.xml deleted file mode 100644 index 2bad6444a..000000000 --- a/config/services/calculator.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/cli.php b/config/services/cli.php new file mode 100644 index 000000000..386c09bdd --- /dev/null +++ b/config/services/cli.php @@ -0,0 +1,31 @@ +services(); + + $services->set('sylius_mollie.console.command.send_abandoned_payment_link', SendAbandonedPaymentLink::class) + ->args([service('sylius_mollie.creator.abandoned_payment_link')]) + ->tag('console.command'); + + $services->set('sylius_mollie.console.command.subscription.begin_processing', BeginProcessingSubscriptions::class) + ->args([ + service('sylius_mollie.repository.mollie_subscription'), + service('sylius_abstraction.state_machine'), + ]) + ->tag('console.command'); + + $services->set('sylius_mollie.console.command.subscription.process', ProcessSubscriptions::class) + ->args([ + service('sylius_mollie.repository.mollie_subscription'), + service('sylius_abstraction.state_machine'), + service('sylius_mollie.subscription.processor.subscription'), + service('router'), + ]) + ->tag('console.command'); +}; diff --git a/config/services/cli.xml b/config/services/cli.xml deleted file mode 100644 index 618ff9e81..000000000 --- a/config/services/cli.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/client.php b/config/services/client.php new file mode 100644 index 000000000..4a2af3508 --- /dev/null +++ b/config/services/client.php @@ -0,0 +1,21 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.client.mollie_api', MollieApiClient::class); + + $services->set('sylius_mollie.client.parser.api_exception', ApiExceptionParser::class) + ->public(); + + $services->alias(ApiExceptionParserInterface::class, 'sylius_mollie.client.parser.api_exception'); +}; diff --git a/config/services/client.xml b/config/services/client.xml deleted file mode 100644 index eb4806c39..000000000 --- a/config/services/client.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/config/services/cloner.php b/config/services/cloner.php new file mode 100644 index 000000000..b57fea76e --- /dev/null +++ b/config/services/cloner.php @@ -0,0 +1,45 @@ +services(); + + $services->set('sylius_mollie.cloner.order_item', OrderItemCloner::class) + ->args([ + service('sylius.factory.order_item'), + service('sylius.factory.order_item_unit'), + ]); + + $services->alias(OrderItemClonerInterface::class, 'sylius_mollie.cloner.order_item'); + + $services->set('sylius_mollie.cloner.adjustment', AdjustmentCloner::class) + ->args([service('sylius.factory.adjustment')]); + + $services->alias(AdjustmentClonerInterface::class, 'sylius_mollie.cloner.adjustment'); + + $services->set('sylius_mollie.cloner.shipment', ShipmentCloner::class) + ->args([service('sylius.factory.shipment')]); + + $services->alias(ShipmentClonerInterface::class, 'sylius_mollie.cloner.shipment'); + + $services->set('sylius_mollie.cloner.subscription_order', SubscriptionOrderCloner::class) + ->args([ + service('sylius_mollie.cloner.order_item'), + service('sylius.factory.order'), + service('sylius.random_generator'), + service('sylius_mollie.cloner.adjustment'), + service('sylius_mollie.cloner.shipment'), + ]); + + $services->alias(SubscriptionOrderClonerInterface::class, 'sylius_mollie.cloner.subscription_order'); +}; diff --git a/config/services/cloner.xml b/config/services/cloner.xml deleted file mode 100644 index fec614eaf..000000000 --- a/config/services/cloner.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/context.php b/config/services/context.php new file mode 100644 index 000000000..7a36adb97 --- /dev/null +++ b/config/services/context.php @@ -0,0 +1,16 @@ +services(); + + $services->set('sylius_mollie.context.admin_user', AdminUserContext::class) + ->public() + ->args([service('security.token_storage')]); + + $services->alias(AdminUserContextInterface::class, 'sylius_mollie.context.admin_user'); +}; diff --git a/config/services/context.xml b/config/services/context.xml deleted file mode 100644 index 2249122df..000000000 --- a/config/services/context.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - diff --git a/config/services/controller/admin.php b/config/services/controller/admin.php new file mode 100644 index 000000000..4f7aafc7c --- /dev/null +++ b/config/services/controller/admin.php @@ -0,0 +1,76 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.controller.admin.refund', RefundAction::class) + ->args([ + service('sylius.repository.payment'), + service('payum'), + service('request_stack'), + service('sylius_abstraction.state_machine'), + service('sylius.manager.payment'), + service('sylius_mollie.logger.mollie_logger_action'), + ]); + + $services->set('sylius_mollie.controller.admin.methods', MethodsAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('request_stack'), + service('sylius_mollie.updater.mollie_methods'), + service('sylius.repository.gateway_config'), + ]); + + $services->set('sylius_mollie.controller.admin.delete_payment_method_image', DeletePaymentMethodImageAction::class) + ->args([ + service('sylius_mollie.uploader.payment_method_logo'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius.manager.gateway_config'), + service('sylius_mollie.logger.mollie_logger_action'), + ]); + + $services->set('sylius_mollie.controller.admin.generate_payment_link', GeneratePaymentLinkAction::class) + ->args([ + service('sylius.repository.order'), + service('twig'), + service('request_stack'), + service('router'), + service('form.factory'), + service('sylius_mollie.resolver.payment_link'), + service('sylius_mollie.logger.mollie_logger_action'), + ]); + + $services->alias('sylius_mollie.controller.admin.mollie_subscription', 'sylius_mollie.controller.mollie_subscription'); + + $services->set('sylius_mollie.controller.admin.test_api_keys', TestApiKeysAction::class) + ->args([ + service('sylius_mollie.resolver.api_keys_test'), + service('twig'), + ]); + + $services->set('sylius_mollie.controller.admin.change_position_payment_method', ChangePositionPaymentMethodAction::class) + ->args([service('sylius_mollie.updater.mollie_payment_method_position')]); + + $services->set('sylius_mollie.controller.admin.onboarding_wizard.status', StatusAction::class) + ->args([service('sylius_mollie.context.admin_user')]); + + $services->set('sylius_mollie.controller.admin.onboarding_wizard.completed', CompletedAction::class) + ->args([ + service('sylius_mollie.context.admin_user'), + service('doctrine.orm.entity_manager'), + ]); +}; diff --git a/config/services/controller/admin.xml b/config/services/controller/admin.xml deleted file mode 100644 index 17da54287..000000000 --- a/config/services/controller/admin.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/controller/shop.php b/config/services/controller/shop.php new file mode 100644 index 000000000..86d139dfe --- /dev/null +++ b/config/services/controller/shop.php @@ -0,0 +1,89 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.controller.shop.payment_fee_calculate', PaymentFeeCalculateAction::class) + ->args([ + service('sylius_mollie.calculator.payment_fee.composite'), + service('sylius.context.cart'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius.aggregator.adjustments_by_label'), + service('sylius_mollie.converter.price_to_amount'), + service('twig'), + service('sylius_mollie.calculator.clearer.payment_fee_adjustment'), + ]); + + $services->set('sylius_mollie.controller.shop.no_payment_fee_calculate', NoPaymentFeeCalculateAction::class) + ->args([ + service('sylius.context.cart'), + service('sylius_mollie.converter.price_to_amount'), + service('sylius_mollie.calculator.clearer.payment_fee_adjustment'), + ]); + + $services->set('sylius_mollie.controller.shop.qr_code', QrCodeAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius.context.cart'), + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius.repository.order'), + service('router'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius_mollie.converter.int_to_string'), + ]); + + $services->set('sylius_mollie.controller.shop.credit_card_translation', CreditCardTranslationController::class) + ->args([service('translator')]); + + $services->set('sylius_mollie.controller.shop.payum', PayumController::class) + ->args([ + service('payum'), + service('sylius.repository.order'), + service('router'), + service('sylius_abstraction.state_machine'), + service('doctrine.orm.default_entity_manager'), + ]); + + $services->set('sylius_mollie.controller.shop.payment_webhook', PaymentWebhookController::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius.repository.order'), + service('sylius.repository.payment'), + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_abstraction.state_machine'), + service('doctrine.orm.default_entity_manager'), + ]); + + $services->set('sylius_mollie.controller.shop.page_redirect', PageRedirectController::class) + ->args([ + service('router'), + service('sylius.repository.order'), + ]); + + $services->set('sylius_mollie.controller.shop.apple_pay_validation', ApplePayValidationAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius_mollie.apple_pay.checker.apple_pay_enabled'), + ]); + + $services->set('sylius_mollie.controller.shop.order', OrderController::class) + ->parent('sylius.controller.order'); +}; diff --git a/config/services/controller/shop.xml b/config/services/controller/shop.xml deleted file mode 100644 index 5d8cb8cfe..000000000 --- a/config/services/controller/shop.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/converter.php b/config/services/converter.php new file mode 100644 index 000000000..a4d2ab38c --- /dev/null +++ b/config/services/converter.php @@ -0,0 +1,43 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.converter.int_to_string', IntToStringConverter::class) + ->args([service('sylius_mollie.provider.divisor')]); + + $services->alias(IntToStringConverterInterface::class, 'sylius_mollie.converter.int_to_string'); + + $services->set('sylius_mollie.converter.order', OrderConverter::class) + ->args([ + service('sylius_mollie.converter.int_to_string'), + service('sylius_mollie.calculator.calculate_tax_amount'), + service('sylius_mollie.resolver.meal_voucher'), + service('sylius.resolver.tax_rate'), + service('sylius.matcher.zone'), + service('request_stack'), + ]); + + $services->alias(OrderConverterInterface::class, 'sylius_mollie.converter.order'); + + $services->set('sylius_mollie.converter.price_to_amount', PriceToAmountConverter::class) + ->args([ + service('sylius.context.currency'), + service('sylius.context.locale'), + service('sylius.formatter.money'), + ]); + + $services->alias(PriceToAmountConverterInterface::class, 'sylius_mollie.converter.price_to_amount'); +}; diff --git a/config/services/converter.xml b/config/services/converter.xml deleted file mode 100644 index 1038af61b..000000000 --- a/config/services/converter.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/creator.php b/config/services/creator.php new file mode 100644 index 000000000..cb1e8fa6c --- /dev/null +++ b/config/services/creator.php @@ -0,0 +1,61 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.creator.abandoned_payment_link', AbandonedPaymentLinkCreator::class) + ->args([ + service('sylius_mollie.resolver.payment_link'), + service('sylius_mollie.repository.query.order.abandoned'), + service('sylius_mollie.repository.query.payment_method.mollie_based'), + service('sylius.repository.channel'), + service('doctrine.orm.entity_manager'), + ]); + + $services->alias(AbandonedPaymentLinkCreatorInterface::class, 'sylius_mollie.creator.abandoned_payment_link'); + + $services->set('sylius_mollie.creator.mollie_methods', MollieMethodsCreator::class) + ->args([ + service('sylius_mollie.factory.methods'), + service('doctrine.orm.default_entity_manager'), + service('sylius_mollie.custom_factory.mollie_gateway_config'), + ]); + + $services->alias(MollieMethodsCreatorInterface::class, 'sylius_mollie.creator.mollie_methods'); + + $services->set('sylius_mollie.creator.api_keys_test', ApiKeysTestCreator::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('translator'), + ]); + + $services->alias(ApiKeysTestCreatorInterface::class, 'sylius_mollie.creator.api_keys_test'); + + $services->set('sylius_mollie.creator.payment_data', PaymentDataCreator::class) + ->args([ + service('sylius_mollie.converter.int_to_string'), + service('router'), + service('sylius_mollie.provider.payment_description'), + service('sylius_mollie.resolver.payment_locale'), + service('sylius_mollie.provider.divisor'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius_mollie.converter.order'), + '%locale%', + ]); + + $services->alias(PaymentDataCreatorInterface::class, 'sylius_mollie.creator.payment_data'); +}; diff --git a/config/services/creator.xml b/config/services/creator.xml deleted file mode 100644 index 8e9265c92..000000000 --- a/config/services/creator.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %locale% - - - - diff --git a/config/services/event_listener.php b/config/services/event_listener.php new file mode 100644 index 000000000..499413a4e --- /dev/null +++ b/config/services/event_listener.php @@ -0,0 +1,45 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.listener.shipment_ship', ShipmentShipEventListener::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('request_stack'), + ]) + ->tag('kernel.event_listener', ['event' => 'sylius.shipment.post_ship', 'method' => 'shipAll']); + + $services->set('sylius_mollie.listener.payment_method_logo_upload', PaymentMethodUploadLogoListener::class) + ->args([ + service('sylius.manager.gateway_config'), + service('sylius_mollie.uploader.payment_method_logo'), + ]) + ->tag('kernel.event_listener', ['event' => 'sylius.payment_method.pre_create', 'method' => 'uploadLogo']) + ->tag('kernel.event_listener', ['event' => 'sylius.payment_method.pre_update', 'method' => 'uploadLogo']); + + $services->set('sylius_mollie.listener.checkout_order_colliding_products', CheckoutOrderCollidingProductsListener::class) + ->args([ + service('router'), + service('translator'), + service('request_stack'), + ]) + ->tag('kernel.event_listener', ['event' => 'sylius.order.initialize_address', 'method' => 'onUpdate']); + + $services->set('sylius_mollie.listener.payment_methods_refresh', PaymentMethodsRefreshListener::class) + ->args([ + service('sylius_mollie.updater.mollie_methods'), + service('request_stack'), + ]) + ->tag('kernel.event_listener', ['event' => 'sylius.payment_method.initialize_update', 'method' => 'refreshMethods']); +}; diff --git a/config/services/event_listener.xml b/config/services/event_listener.xml deleted file mode 100644 index b0fcd7288..000000000 --- a/config/services/event_listener.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/factory.php b/config/services/factory.php new file mode 100644 index 000000000..0e2d90822 --- /dev/null +++ b/config/services/factory.php @@ -0,0 +1,67 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.custom_factory.mollie_gateway_config', MollieGatewayConfigFactory::class) + ->decorate('sylius_mollie.factory.mollie_gateway_config') + ->args([ + service('.inner'), + service('sylius_mollie.repository.mollie_gateway_config'), + ]); + + $services->alias(MollieGatewayConfigFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_gateway_config'); + + $services->set('sylius_mollie.custom_factory.mollie_logger', MollieLoggerFactory::class) + ->decorate('sylius_mollie.factory.mollie_logger') + ->args([service('.inner')]); + + $services->alias(MollieLoggerFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_logger'); + + $services->set('sylius_mollie.custom_factory.mollie_subscription', MollieSubscriptionFactory::class) + ->decorate('sylius_mollie.factory.mollie_subscription') + ->args([ + service('.inner'), + service('router'), + ]); + + $services->alias(MollieSubscriptionFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_subscription'); + + $services->set('sylius_mollie.custom_factory.mollie_subscription_schedule', MollieSubscriptionScheduleFactory::class) + ->decorate('sylius_mollie.factory.mollie_subscription_schedule') + ->args([service('.inner')]); + + $services->alias(MollieSubscriptionScheduleFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_subscription_schedule'); + + $services->set('sylius_mollie.factory.methods', MethodsFactory::class); + + $services->alias(MethodsFactoryInterface::class, 'sylius_mollie.factory.methods'); + + $services->set('sylius_mollie.factory.date_period', DatePeriodFactory::class); + + $services->alias(DatePeriodFactoryInterface::class, 'sylius_mollie.factory.date_period'); + + $services->set('sylius_mollie.factory.payment_details', PaymentDetailsFactory::class); + + $services->alias(PaymentDetailsFactoryInterface::class, 'sylius_mollie.factory.payment_details'); +}; diff --git a/config/services/factory.xml b/config/services/factory.xml deleted file mode 100644 index 8bb44f977..000000000 --- a/config/services/factory.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/filter.php b/config/services/filter.php new file mode 100644 index 000000000..2292120a2 --- /dev/null +++ b/config/services/filter.php @@ -0,0 +1,14 @@ +services(); + + $services->set('sylius_mollie.filter.mollie_method', MollieMethodFilter::class); + + $services->alias(MollieMethodFilterInterface::class, 'sylius_mollie.filter.mollie_method'); +}; diff --git a/config/services/filter.xml b/config/services/filter.xml deleted file mode 100644 index 8d5588eb3..000000000 --- a/config/services/filter.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - diff --git a/config/services/fixture.php b/config/services/fixture.php new file mode 100644 index 000000000..a830ed173 --- /dev/null +++ b/config/services/fixture.php @@ -0,0 +1,17 @@ +services(); + + $services->set('sylius_mollie.fixture.listener.products_within_all_channels', ProductsWithinAllChannelsListener::class) + ->args([ + service('sylius.repository.channel'), + service('sylius.repository.product'), + service('doctrine.orm.entity_manager'), + ]) + ->tag('sylius_fixtures.listener'); +}; diff --git a/config/services/fixture.xml b/config/services/fixture.xml deleted file mode 100644 index 5ae80dfdb..000000000 --- a/config/services/fixture.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/config/services/form/extension.php b/config/services/form/extension.php new file mode 100644 index 000000000..9b36aa330 --- /dev/null +++ b/config/services/form/extension.php @@ -0,0 +1,29 @@ +services(); + + $services->set('sylius_mollie.form.extension.type.product_variant_recurring', ProductVariantRecurringExtension::class) + ->args([service('sylius_mollie.form.resolver.product_variant_validation_groups')]) + ->tag('form.type_extension', ['extended_type' => ProductVariantType::class]); + + $services->set('sylius_mollie.form.extension.type.payment', PaymentTypeExtension::class) + ->tag('form.type_extension', ['extended_type' => PaymentType::class]); + + $services->set('sylius_mollie.form.extension.type.gateway_config', GatewayConfigTypeExtension::class) + ->tag('form.type_extension', ['extended_type' => GatewayConfigType::class]); + + $services->set('sylius_mollie.form.extension.type.product_type', ProductTypeExtension::class) + ->tag('form.type_extension', ['extended_type' => ProductType::class]); +}; diff --git a/config/services/form/extension.xml b/config/services/form/extension.xml deleted file mode 100644 index a8775c5ec..000000000 --- a/config/services/form/extension.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/form/parameters.php b/config/services/form/parameters.php new file mode 100644 index 000000000..1f6abc8b6 --- /dev/null +++ b/config/services/form/parameters.php @@ -0,0 +1,10 @@ +parameters(); + $parameters->set('sylius_mollie.form.type.mollie_gateway_config.validation_groups', ['sylius']); + $parameters->set('sylius_mollie.form.type.payment_methods.payment_surcharge_fee.validation_groups', ['sylius']); + $parameters->set('sylius_mollie.form.type.mollie.validation_groups', ['sylius']); +}; diff --git a/config/services/form/parameters.xml b/config/services/form/parameters.xml deleted file mode 100644 index 2861804a0..000000000 --- a/config/services/form/parameters.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - sylius - - - sylius - - - sylius - - - diff --git a/config/services/form/resolver.php b/config/services/form/resolver.php new file mode 100644 index 000000000..265acefd6 --- /dev/null +++ b/config/services/form/resolver.php @@ -0,0 +1,17 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.form.resolver.product_variant_validation_groups', ProductVariantValidationGroupsResolver::class); + + $services->alias(ValidationGroupsResolverInterface::class, 'sylius_mollie.form.resolver.product_variant_validation_groups'); +}; diff --git a/config/services/form/resolver.xml b/config/services/form/resolver.xml deleted file mode 100644 index 377118f25..000000000 --- a/config/services/form/resolver.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/config/services/form/transformer.php b/config/services/form/transformer.php new file mode 100644 index 000000000..74a4effcf --- /dev/null +++ b/config/services/form/transformer.php @@ -0,0 +1,11 @@ +services(); + + $services->set('sylius_mollie.form.type.data_transformer.mollie_interval', MollieIntervalTransformer::class); +}; diff --git a/config/services/form/transformer.xml b/config/services/form/transformer.xml deleted file mode 100644 index 13e2028bf..000000000 --- a/config/services/form/transformer.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/config/services/form/type.php b/config/services/form/type.php new file mode 100644 index 000000000..7f9e72897 --- /dev/null +++ b/config/services/form/type.php @@ -0,0 +1,89 @@ +services(); + + $services->set('sylius_mollie.form.type.mollie_gateway_configuration', MollieGatewayConfigurationType::class) + ->args([service('sylius_mollie.client.mollie_api')]) + ->tag('sylius.gateway_configuration_type', ['type' => 'mollie', 'label' => 'sylius_mollie.ui.mollie_gateway_label']) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.mollie_subscription_gateway_configuration', MollieSubscriptionGatewayConfigurationType::class) + ->tag('sylius.gateway_configuration_type', ['type' => 'mollie_subscription', 'label' => 'sylius_mollie.ui.mollie_subscription_gateway_label']) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.mollie_payment', PaymentMollieType::class) + ->args([service('sylius_mollie.resolver.payment_methods')]) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.mollie_interval', MollieIntervalType::class) + ->args([service('sylius_mollie.form.type.data_transformer.mollie_interval')]) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.mollie_gateway_config', MollieGatewayConfigType::class) + ->args([ + '%sylius_mollie.model.mollie_gateway_config.class%', + '%sylius_mollie.form.type.mollie_gateway_config.validation_groups%', + '%sylius_locale.locale%', + ]) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.payment_surcharge_fee', PaymentSurchargeFeeType::class) + ->args([ + '%sylius_mollie.model.payment_surcharge_fee.class%', + '%sylius_mollie.form.type.payment_methods.payment_surcharge_fee.validation_groups%', + ]) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.customize_method_image', CustomizeMethodImageType::class) + ->args(['%sylius_mollie.model.mollie_method_image.class%']) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.product_type', ProductTypeType::class) + ->args([ + '%sylius_mollie.model.product_type.class%', + '%sylius_mollie.form.type.mollie.validation_groups%', + ]) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.translation.block_translation', TemplateMollieEmailTranslationType::class) + ->args(['%sylius_mollie.model.template_mollie_email_translation.class%']) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.translation.payment_method_translation', MollieGatewayConfigTranslationType::class) + ->args(['%sylius_mollie.model.mollie_gateway_config_translation.class%']) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.countries_restriction_choice', CountriesRestrictionChoiceType::class) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.payment_type_choice', PaymentTypeChoiceType::class) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.payment_surcharge_type_choice', PaymentSurchargeFeeTypeChoiceType::class) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.logger_level_choice', LoggerLevelChoiceType::class) + ->tag('form.type'); + + $services->set('sylius_mollie.form.type.payment_link', PaymentLinkType::class) + ->tag('form.type'); +}; diff --git a/config/services/form/type.xml b/config/services/form/type.xml deleted file mode 100644 index 59646b13c..000000000 --- a/config/services/form/type.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_mollie.model.mollie_gateway_config.class% - %sylius_mollie.form.type.mollie_gateway_config.validation_groups% - %sylius_locale.locale% - - - - - %sylius_mollie.model.payment_surcharge_fee.class% - %sylius_mollie.form.type.payment_methods.payment_surcharge_fee.validation_groups% - - - - - %sylius_mollie.model.mollie_method_image.class% - - - - - %sylius_mollie.model.product_type.class% - %sylius_mollie.form.type.mollie.validation_groups% - - - - - %sylius_mollie.model.template_mollie_email_translation.class% - - - - - %sylius_mollie.model.mollie_gateway_config_translation.class% - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/grid.php b/config/services/grid.php new file mode 100644 index 000000000..f6b3fc633 --- /dev/null +++ b/config/services/grid.php @@ -0,0 +1,18 @@ +services(); + + $services->set('sylius_mollie.grid.filter.mollie_logger_level', MollieLoggerLevel::class) + ->tag('sylius.grid_filter', ['type' => 'log_level', 'form_type' => MollieLoggerLevelFilterType::class]); + + $services->set('sylius_mollie.grid.filter.mollie_subscription_state', MollieSubscriptionState::class) + ->tag('sylius.grid_filter', ['type' => 'subscription_state', 'form_type' => MollieSubscriptionStateGridFilterType::class]); +}; diff --git a/config/services/grid.xml b/config/services/grid.xml deleted file mode 100644 index 2bb5d3d0d..000000000 --- a/config/services/grid.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/config/services/listeners/workflow/mollie_subscription.php b/config/services/listeners/workflow/mollie_subscription.php new file mode 100644 index 000000000..7be65ae04 --- /dev/null +++ b/config/services/listeners/workflow/mollie_subscription.php @@ -0,0 +1,23 @@ +services(); + + $services->set('sylius_mollie.listener.workflow.mollie_subscription.complete_subscription_guard', CompleteSubscriptionGuardListener::class) + ->args([service('sylius_mollie.subscription.guard.subscription')]) + ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_graph.guard.complete', 'priority' => 0]); + + $services->set('sylius_mollie.listener.workflow.mollie_subscription.abort_subscription_guard', AbortSubscriptionGuardListener::class) + ->args([service('sylius_mollie.subscription.guard.subscription')]) + ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_graph.guard.abort', 'priority' => 0]); + + $services->set('sylius_mollie.listener.workflow.mollie_subscription.activate_subscription_process', ActivateSubscriptionProcessListener::class) + ->args([service('sylius_mollie.subscription.processor.subscription_schedule')]) + ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_graph.completed.activate', 'priority' => 0]); +}; diff --git a/config/services/listeners/workflow/mollie_subscription.xml b/config/services/listeners/workflow/mollie_subscription.xml deleted file mode 100644 index 39750b8dc..000000000 --- a/config/services/listeners/workflow/mollie_subscription.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/listeners/workflow/mollie_subscription_payment.php b/config/services/listeners/workflow/mollie_subscription_payment.php new file mode 100644 index 000000000..59def3eca --- /dev/null +++ b/config/services/listeners/workflow/mollie_subscription_payment.php @@ -0,0 +1,13 @@ +services(); + + $services->set('sylius_mollie.listener.workflow.mollie_subscription_payment.subscription_success_process', SubscriptionSuccessProcessListener::class) + ->args([service('sylius_mollie.subscription.processor.subscription_schedule')]) + ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_payment_state_graph.transition.success', 'priority' => 0]); +}; diff --git a/config/services/listeners/workflow/mollie_subscription_payment.xml b/config/services/listeners/workflow/mollie_subscription_payment.xml deleted file mode 100644 index cdc128bdf..000000000 --- a/config/services/listeners/workflow/mollie_subscription_payment.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/config/services/listeners/workflow/sylius_order_checkout.php b/config/services/listeners/workflow/sylius_order_checkout.php new file mode 100644 index 000000000..94c2dbff7 --- /dev/null +++ b/config/services/listeners/workflow/sylius_order_checkout.php @@ -0,0 +1,13 @@ +services(); + + $services->set('sylius_mollie.listener.workflow.order_checkout.address.refresh_payment_methods', RefreshPaymentMethodsListener::class) + ->args([service('sylius_mollie.synchronizer.mollie_payment_methods')]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_order_checkout.completed.address', 'priority' => 0]); +}; diff --git a/config/services/listeners/workflow/sylius_order_checkout.xml b/config/services/listeners/workflow/sylius_order_checkout.xml deleted file mode 100644 index be18ea154..000000000 --- a/config/services/listeners/workflow/sylius_order_checkout.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/services/listeners/workflow/sylius_order_payment.php b/config/services/listeners/workflow/sylius_order_payment.php new file mode 100644 index 000000000..008065fa4 --- /dev/null +++ b/config/services/listeners/workflow/sylius_order_payment.php @@ -0,0 +1,14 @@ +services(); + + $services->set('sylius_mollie.listener.workflow.order_payment.refund_guard', RefundGuardListener::class) + ->args([service('sylius_mollie.refund.guard.order_payment_refund')]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_order_payment.guard.partially_refund', 'priority' => 0]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_order_payment.guard.refund', 'priority' => 0]); +}; diff --git a/config/services/listeners/workflow/sylius_order_payment.xml b/config/services/listeners/workflow/sylius_order_payment.xml deleted file mode 100644 index 4ca98b06a..000000000 --- a/config/services/listeners/workflow/sylius_order_payment.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/config/services/listeners/workflow/sylius_payment.php b/config/services/listeners/workflow/sylius_payment.php new file mode 100644 index 000000000..8dee1d78d --- /dev/null +++ b/config/services/listeners/workflow/sylius_payment.php @@ -0,0 +1,24 @@ +services(); + + $services->set('sylius_mollie.listener.workflow.payment.subscription_payment_fail', SubscriptionPaymentFailListener::class) + ->args([service('sylius_mollie.subscription.processor.subscription_payment')]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.completed.fail', 'priority' => -100]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.completed.cancel', 'priority' => -100]); + + $services->set('sylius_mollie.listener.workflow.payment.subscription_payment_success', SubscriptionPaymentSuccessListener::class) + ->args([service('sylius_mollie.subscription.processor.subscription_payment')]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.completed.complete', 'priority' => -100]); + + $services->set('sylius_mollie.listener.workflow.payment.refund_guard', PaymentRefundGuardListener::class) + ->args([service('sylius_mollie.refund.guard.mollie_payment_refund')]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.guard.refund', 'priority' => 0]); +}; diff --git a/config/services/listeners/workflow/sylius_payment.xml b/config/services/listeners/workflow/sylius_payment.xml deleted file mode 100644 index 42ab7eba5..000000000 --- a/config/services/listeners/workflow/sylius_payment.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/listeners/workflow/sylius_shipment.php b/config/services/listeners/workflow/sylius_shipment.php new file mode 100644 index 000000000..181c6051a --- /dev/null +++ b/config/services/listeners/workflow/sylius_shipment.php @@ -0,0 +1,13 @@ +services(); + + $services->set('sylius_mollie.listener.workflow.shipment.ship', ShipmentShipListener::class) + ->args([service('sylius_mollie.shipping.mollie_shipment_notifier')]) + ->tag('kernel.event_listener', ['event' => 'workflow.sylius_shipment.completed.ship']); +}; diff --git a/config/services/listeners/workflow/sylius_shipment.xml b/config/services/listeners/workflow/sylius_shipment.xml deleted file mode 100644 index 10f86d028..000000000 --- a/config/services/listeners/workflow/sylius_shipment.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/services/logger.php b/config/services/logger.php new file mode 100644 index 000000000..07e4cb10d --- /dev/null +++ b/config/services/logger.php @@ -0,0 +1,23 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.logger.mollie_logger_action', MollieLoggerAction::class) + ->args([ + service('sylius_mollie.factory.mollie_logger'), + service('sylius_mollie.repository.mollie_logger'), + service('sylius.repository.gateway_config'), + service('sylius_mollie.resolver.mollie_factory_name'), + ]); + + $services->alias(MollieLoggerActionInterface::class, 'sylius_mollie.logger.mollie_logger_action'); +}; diff --git a/config/services/logger.xml b/config/services/logger.xml deleted file mode 100644 index 4eb7eda2c..000000000 --- a/config/services/logger.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/config/services/mailer/manager.php b/config/services/mailer/manager.php new file mode 100644 index 000000000..48c9dcf5c --- /dev/null +++ b/config/services/mailer/manager.php @@ -0,0 +1,21 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.mailer.manager.payment_link_email', PaymentLinkEmailManager::class) + ->args([ + service('sylius_mollie.repository.template_mollie_email_translation'), + service('sylius_mollie.mailer.sender.payment_link'), + ]); + + $services->alias(PaymentLinkEmailManagerInterface::class, 'sylius_mollie.mailer.manager.payment_link_email'); +}; diff --git a/config/services/mailer/manager.xml b/config/services/mailer/manager.xml deleted file mode 100644 index f1bf8b05d..000000000 --- a/config/services/mailer/manager.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/config/services/mailer/sender.php b/config/services/mailer/sender.php new file mode 100644 index 000000000..bc6a5537e --- /dev/null +++ b/config/services/mailer/sender.php @@ -0,0 +1,21 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.mailer.sender.payment_link', PaymentLinkEmailSender::class) + ->args([ + service('sylius.email_sender'), + service('sylius_mollie.twig.parser.content'), + ]); + + $services->alias(PaymentLinkEmailSenderInterface::class, 'sylius_mollie.mailer.sender.payment_link'); +}; diff --git a/config/services/mailer/sender.xml b/config/services/mailer/sender.xml deleted file mode 100644 index d3b6a8b94..000000000 --- a/config/services/mailer/sender.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/config/services/menu.php b/config/services/menu.php new file mode 100644 index 000000000..b22e24649 --- /dev/null +++ b/config/services/menu.php @@ -0,0 +1,12 @@ +services(); + + $services->set('sylius_mollie.menu_listener.mollie_recurring', MollieRecurringMenuListener::class) + ->tag('kernel.event_listener', ['method' => 'buildMenu', 'event' => 'sylius.menu.admin.main']); +}; diff --git a/config/services/menu.xml b/config/services/menu.xml deleted file mode 100644 index a5cf20bb4..000000000 --- a/config/services/menu.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - diff --git a/config/services/payum/action.php b/config/services/payum/action.php new file mode 100644 index 000000000..9888eb58e --- /dev/null +++ b/config/services/payum/action.php @@ -0,0 +1,142 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.payum.get_http_request', GetHttpRequest::class); + + $services->set('sylius_mollie.payum.action.capture', CaptureAction::class) + ->args([ + service('sylius.repository.order'), + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius.repository.payment'), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.capture']) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.capture_subscription']); + + $services->set('sylius_mollie.payum.action.notify', NotifyAction::class) + ->args([ + service('sylius_mollie.payum.get_http_request'), + service('sylius_mollie.repository.mollie_subscription'), + service('sylius_mollie.state_machine.order_set_status'), + service('sylius_mollie.logger.mollie_logger_action'), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.notify']) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.notify_subscription']); + + $services->set('sylius_mollie.payum.action.status', StatusAction::class) + ->args([ + service('sylius_mollie.refund.payment')->nullOnInvalid(), + service('sylius_mollie.refund.order')->nullOnInvalid(), + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.voucher.updater.order_voucher_adjustment'), + service('sylius_mollie.refund.checker.mollie_order_refund')->nullOnInvalid(), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.status']) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.status_subscription']); + + $services->set('sylius_mollie.payum.action.convert_mollie_payment', ConvertMolliePaymentAction::class) + ->args([ + service('sylius_mollie.provider.payment_description'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius_mollie.converter.order'), + service('sylius.context.customer'), + service('sylius_mollie.resolver.payment_locale'), + service('sylius_mollie.payum.factory.create_customer'), + service('sylius_mollie.converter.int_to_string'), + service('sylius_mollie.provider.divisor'), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.convert_mollie_payment']); + + $services->set('sylius_mollie.payum.action.subscription.convert_mollie_subscription_payment', ConvertMollieSubscriptionPaymentAction::class) + ->args([ + service('sylius_mollie.provider.payment_description'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius_mollie.converter.order'), + service('sylius.context.customer'), + service('sylius_mollie.resolver.payment_locale'), + service('sylius_mollie.converter.int_to_string'), + service('sylius_mollie.provider.divisor'), + ]) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.convert_mollie_subscription_payment']); + + $services->set('sylius_mollie.payum.action.create_payment', CreatePaymentAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.client.parser.api_exception'), + service('request_stack'), + service('sylius_mollie.repository.mollie_customer'), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.create_payment']) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_payment_subscription']); + + $services->set('sylius_mollie.payum.action.create_order', CreateOrderAction::class) + ->args([ + service('sylius_mollie.resolver.payment_config'), + service('sylius_mollie.logger.mollie_logger_action'), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.create_order']); + + $services->set('sylius_mollie.payum.action.create_on_demand_payment', CreateOnDemandPaymentAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.client.parser.api_exception'), + ]) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_on_demand_payment_action']); + + $services->set('sylius_mollie.payum.action.subscription.create_on_demand_subscription', CreateOnDemandSubscriptionAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.client.parser.api_exception'), + ]) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_on_demand_subscription_action']); + + $services->set('sylius_mollie.payum.action.subscription.create_internal_subscription', CreateInternalSubscriptionAction::class) + ->args([ + service('sylius_mollie.repository.mollie_subscription'), + service('sylius_mollie.custom_factory.mollie_subscription'), + service('sylius.repository.order'), + ]) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_internal_subscription']); + + $services->set('sylius_mollie.payum.action.create_customer', CreateCustomerAction::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.repository.mollie_customer'), + ]) + ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.api.create_customer']) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.api.create_customer_subscription']); + + $services->set('sylius_mollie.payum.action.subscription.cancel_recurring_subscription', CancelRecurringSubscriptionAction::class) + ->args([service('sylius_mollie.logger.mollie_logger_action')]) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.state_machine.cancel_recurring_subscription']); + + $services->set('sylius_mollie.payum.action.subscription.status_recurring_subscription', StatusRecurringSubscriptionAction::class) + ->args([ + service('sylius_mollie.manager.mollie_subscription'), + service('sylius_mollie.state_machine.applicator.subscription_and_payment_id'), + service('sylius_mollie.state_machine.applicator.subscription_and_sylius_payment'), + service('sylius_abstraction.state_machine'), + ]) + ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.state_machine.status_recurring_subscription']); +}; diff --git a/config/services/payum/action.xml b/config/services/payum/action.xml deleted file mode 100644 index 00b2e478f..000000000 --- a/config/services/payum/action.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/payum/factory.php b/config/services/payum/factory.php new file mode 100644 index 000000000..6a6fa11b3 --- /dev/null +++ b/config/services/payum/factory.php @@ -0,0 +1,39 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.payum.gateway_factory.mollie_gateway', MollieGatewayFactory::class); + + $services->set('sylius_mollie.payum.gateway_factory.mollie_subscription_gateway', MollieSubscriptionGatewayFactory::class); + + $services->set('sylius_mollie.payum.gateway_factory.builder.mollie', GatewayFactoryBuilder::class) + ->args([service('sylius_mollie.payum.gateway_factory.mollie_gateway')]) + ->tag('payum.gateway_factory_builder', ['factory' => 'mollie']); + + $services->set('sylius_mollie.payum.gateway_factory.builder.mollie_subscription', GatewayFactoryBuilder::class) + ->args([service('sylius_mollie.payum.gateway_factory.mollie_subscription_gateway')]) + ->tag('payum.gateway_factory_builder', ['factory' => 'mollie_subscription']); + + $services->set('sylius_mollie.payum.factory.create_customer', CreateCustomerFactory::class); + + $services->alias(CreateCustomerFactoryInterface::class, 'sylius_mollie.payum.factory.create_customer'); + + $services->set('sylius_mollie.payum.checker.mollie_gateway_factory', MollieGatewayFactoryChecker::class) + ->public(); + + $services->alias(MollieGatewayFactoryCheckerInterface::class, 'sylius_mollie.payum.checker.mollie_gateway_factory'); +}; diff --git a/config/services/payum/factory.xml b/config/services/payum/factory.xml deleted file mode 100644 index 64963dcce..000000000 --- a/config/services/payum/factory.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/payum/provider.php b/config/services/payum/provider.php new file mode 100644 index 000000000..2a625707c --- /dev/null +++ b/config/services/payum/provider.php @@ -0,0 +1,21 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.payum.provider.payment_token', PaymentTokenProvider::class) + ->args([ + service('payum'), + 'sylius_shop_order_after_pay', + ]); + + $services->alias(PaymentTokenProviderInterface::class, 'sylius_mollie.payum.provider.payment_token'); +}; diff --git a/config/services/payum/provider.xml b/config/services/payum/provider.xml deleted file mode 100644 index 2ee45621f..000000000 --- a/config/services/payum/provider.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - sylius_shop_order_after_pay - - - - diff --git a/config/services/processor.php b/config/services/processor.php new file mode 100644 index 000000000..aa198c153 --- /dev/null +++ b/config/services/processor.php @@ -0,0 +1,18 @@ +services(); + + $services->set('sylius_mollie.processor.payment_surcharge', PaymentSurchargeProcessor::class) + ->args([service('sylius_mollie.calculator.payment_fee.composite')]) + ->tag('sylius.order_processor', ['priority' => 10]); + + $services->set('sylius_mollie.processor.payment_surcharge_cleanup', PaymentSurchargeCleanupProcessor::class) + ->args([service('sylius_mollie.calculator.clearer.payment_fee_adjustment')]) + ->tag('sylius.order_processor', ['priority' => 20]); +}; diff --git a/config/services/processor.xml b/config/services/processor.xml deleted file mode 100644 index 08c250959..000000000 --- a/config/services/processor.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/config/services/provider.php b/config/services/provider.php new file mode 100644 index 000000000..5c657267d --- /dev/null +++ b/config/services/provider.php @@ -0,0 +1,44 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.provider.divisor', DivisorProvider::class); + + $services->alias(DivisorProviderInterface::class, 'sylius_mollie.provider.divisor'); + + $services->set('sylius_mollie.provider.customer', CustomerProvider::class) + ->args([ + service('sylius.repository.customer'), + service('sylius.factory.customer'), + ]); + + $services->alias(CustomerProviderInterface::class, 'sylius_mollie.provider.customer'); + + $services->set('sylius_mollie.provider.payment_description', PaymentDescriptionProvider::class) + ->args([service('sylius_payum.provider.payment_description')]); + + $services->alias(PaymentDescriptionProviderInterface::class, 'sylius_mollie.provider.payment_description'); + + $services->set('sylius_mollie.provider.methods.mollie_methods', MollieMethodsProvider::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.logger.mollie_logger_action'), + ]); + + $services->alias(MollieMethodsProviderInterface::class, 'sylius_mollie.provider.methods.mollie_methods'); +}; diff --git a/config/services/provider.xml b/config/services/provider.xml deleted file mode 100644 index 9f84dcbba..000000000 --- a/config/services/provider.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/purifier.php b/config/services/purifier.php new file mode 100644 index 000000000..53bfbe307 --- /dev/null +++ b/config/services/purifier.php @@ -0,0 +1,18 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.purifier.mollie_payment_method', MolliePaymentMethodPurifier::class) + ->args([service('sylius_mollie.repository.mollie_gateway_config')]); + + $services->alias(MolliePaymentMethodPurifierInterface::class, 'sylius_mollie.purifier.mollie_payment_method'); +}; diff --git a/config/services/purifier.xml b/config/services/purifier.xml deleted file mode 100644 index 41886e836..000000000 --- a/config/services/purifier.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/config/services/registry.php b/config/services/registry.php new file mode 100644 index 000000000..ebbb7c704 --- /dev/null +++ b/config/services/registry.php @@ -0,0 +1,15 @@ +services(); + + $services->set('sylius_mollie.registry.payment_method', PaymentMethodRegistry::class) + ->public(); + + $services->alias(PaymentMethodRegistryInterface::class, 'sylius_mollie.registry.payment_method'); +}; diff --git a/config/services/registry.xml b/config/services/registry.xml deleted file mode 100644 index 046401787..000000000 --- a/config/services/registry.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - diff --git a/config/services/repository.php b/config/services/repository.php new file mode 100644 index 000000000..d6d222474 --- /dev/null +++ b/config/services/repository.php @@ -0,0 +1,29 @@ +services(); + + $services->set('sylius_mollie.repository.query.order.abandoned', AbandonedOrdersQuery::class) + ->args([service('sylius.repository.order')]); + + $services->alias(AbandonedOrdersQueryInterface::class, 'sylius_mollie.repository.query.order.abandoned'); + + $services->set('sylius_mollie.repository.query.payment_method.mollie_based', MollieBasedPaymentMethodQuery::class) + ->args([service('sylius.repository.payment_method')]); + + $services->alias(MollieBasedPaymentMethodQueryInterface::class, 'sylius_mollie.repository.query.payment_method.mollie_based'); + + $services->set('sylius_mollie.repository.query.order.by_token_for_available_methods', OrderByTokenForAvailableMethodsQuery::class) + ->args([service('sylius.repository.order')]); + + $services->alias(OrderByTokenForAvailableMethodsQueryInterface::class, 'sylius_mollie.repository.query.order.by_token_for_available_methods'); +}; diff --git a/config/services/repository.xml b/config/services/repository.xml deleted file mode 100644 index 034983e12..000000000 --- a/config/services/repository.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/resolver.php b/config/services/resolver.php new file mode 100644 index 000000000..b24d66f46 --- /dev/null +++ b/config/services/resolver.php @@ -0,0 +1,146 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.resolver.payment_methods', MolliePaymentsMethodResolver::class) + ->args([ + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius_mollie.resolver.mollie_countries_restriction'), + service('sylius_mollie.voucher.checker.product_voucher_type'), + service('sylius_mollie.resolver.order.payment_checkout_order'), + service('sylius_mollie.repository.query.payment_method.mollie_based'), + service('sylius_mollie.resolver.mollie_allowed_methods'), + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.resolver.mollie_factory_name'), + service('sylius_mollie.provider.divisor'), + ]); + + $services->alias(MolliePaymentsMethodResolverInterface::class, 'sylius_mollie.resolver.payment_methods'); + + $services->set('sylius_mollie.resolver.payment_methods_image', MolliePaymentMethodImageResolver::class); + + $services->alias(MolliePaymentMethodImageResolverInterface::class, 'sylius_mollie.resolver.payment_methods_image'); + + $services->set('sylius_mollie.resolver.payment_config', PaymentMethodConfigResolver::class) + ->args([service('sylius_mollie.repository.mollie_gateway_config')]); + + $services->alias(PaymentMethodConfigResolverInterface::class, 'sylius_mollie.resolver.payment_config'); + + $services->set('sylius_mollie.resolver.payment_locale', PaymentLocaleResolver::class); + + $services->alias(PaymentLocaleResolverInterface::class, 'sylius_mollie.resolver.payment_locale'); + + $services->set('sylius_mollie.resolver.payment_link', PaymentLinkResolver::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.converter.int_to_string'), + service('sylius.repository.order'), + service('sylius_mollie.mailer.manager.payment_link_email'), + service('sylius_mollie.payum.provider.payment_token'), + ]); + + $services->alias(PaymentLinkResolverInterface::class, 'sylius_mollie.resolver.payment_link'); + + $services->set('sylius_mollie.resolver.mollie_countries_restriction', MollieCountriesRestrictionResolver::class) + ->args([service('sylius_mollie.resolver.payment_methods_image')]); + + $services->alias(MollieCountriesRestrictionResolverInterface::class, 'sylius_mollie.resolver.mollie_countries_restriction'); + + $services->set('sylius_mollie.resolver.mollie_factory_name', MollieFactoryNameResolver::class) + ->args([service('sylius.context.cart')]); + + $services->alias(MollieFactoryNameResolverInterface::class, 'sylius_mollie.resolver.mollie_factory_name'); + + $services->set('sylius_mollie.resolver.meal_voucher', MealVoucherResolver::class); + + $services->alias(MealVoucherResolverInterface::class, 'sylius_mollie.resolver.meal_voucher'); + + $services->set('sylius_mollie.resolver.mollie_api_client_key', MollieApiClientKeyResolver::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.repository.query.payment_method.mollie_based'), + service('sylius.context.channel'), + service('sylius_mollie.resolver.mollie_factory_name'), + ]); + + $services->alias(MollieApiClientKeyResolverInterface::class, 'sylius_mollie.resolver.mollie_api_client_key'); + + $services->set('sylius_mollie.resolver.api_keys_test', ApiKeysTestResolver::class) + ->args([service('sylius_mollie.creator.api_keys_test')]); + + $services->alias(ApiKeysTestResolverInterface::class, 'sylius_mollie.resolver.api_keys_test'); + + $services->set('sylius_mollie.resolver.order.payment_checkout_order', PaymentCheckoutOrderResolver::class) + ->args([ + service('request_stack'), + service('sylius.context.cart'), + service('sylius.repository.order'), + ]); + + $services->alias(PaymentCheckoutOrderResolverInterface::class, 'sylius_mollie.resolver.order.payment_checkout_order'); + + $services->set('sylius_mollie.resolver.mollie_methods', MollieMethodsResolver::class) + ->args([ + service('sylius_mollie.logger.mollie_logger_action'), + service('sylius_mollie.client.mollie_api'), + service('sylius.repository.gateway_config'), + service('sylius_mollie.creator.mollie_methods'), + ]); + + $services->alias(MollieMethodsResolverInterface::class, 'sylius_mollie.resolver.mollie_methods'); + + $services->set('sylius_mollie.resolver.mollie_allowed_methods', MollieAllowedMethodsResolver::class) + ->args([ + service('sylius_mollie.resolver.mollie_api_client_key'), + service('sylius_mollie.resolver.payment_locale'), + service('sylius_mollie.converter.int_to_string'), + ]); + + $services->alias(MollieAllowedMethodsResolverInterface::class, 'sylius_mollie.resolver.mollie_allowed_methods'); + + $services->set('sylius_mollie.payment_methods_resolver.mollie_payment', PaymentMethodResolver::class) + ->decorate('sylius.resolver.payment_methods.default') + ->args([ + service('.inner'), + service('sylius_mollie.repository.query.payment_method.mollie_based'), + service('sylius_mollie.resolver.mollie_factory_name'), + service('sylius_mollie.filter.mollie_method'), + service('doctrine.orm.entity_manager'), + ]) + ->tag('sylius.payment_method_resolver', ['type' => 'mollie', 'label' => 'Mollie', 'priority' => 2]); +}; diff --git a/config/services/resolver.xml b/config/services/resolver.xml deleted file mode 100644 index 4a7a2e0df..000000000 --- a/config/services/resolver.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/shipping.php b/config/services/shipping.php new file mode 100644 index 000000000..c01a63eb5 --- /dev/null +++ b/config/services/shipping.php @@ -0,0 +1,15 @@ +services(); + + $services->set('sylius_mollie.shipping.mollie_shipment_notifier', MollieShipmentNotifier::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius.section_resolver.uri_based'), + ]); +}; diff --git a/config/services/shipping.xml b/config/services/shipping.xml deleted file mode 100644 index 3377b06be..000000000 --- a/config/services/shipping.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/config/services/state_machine.php b/config/services/state_machine.php new file mode 100644 index 000000000..e91e01270 --- /dev/null +++ b/config/services/state_machine.php @@ -0,0 +1,38 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.state_machine.applicator.subscription_and_payment_id', SubscriptionAndPaymentIdApplicator::class) + ->args([ + service('sylius_mollie.client.mollie_api'), + service('sylius_abstraction.state_machine'), + ]); + + $services->alias(SubscriptionAndPaymentIdApplicatorInterface::class, 'sylius_mollie.state_machine.applicator.subscription_and_payment_id'); + + $services->set('sylius_mollie.state_machine.applicator.subscription_and_sylius_payment', SubscriptionAndSyliusPaymentApplicator::class) + ->args([service('sylius_abstraction.state_machine')]); + + $services->alias(SubscriptionAndSyliusPaymentApplicatorInterface::class, 'sylius_mollie.state_machine.applicator.subscription_and_sylius_payment'); + + $services->set('sylius_mollie.state_machine.order_set_status', MollieOrderStatesApplicator::class) + ->args([ + service('sylius_abstraction.state_machine'), + service('sylius.repository.order'), + ]); + + $services->alias(MollieOrderStatesApplicatorInterface::class, 'sylius_mollie.state_machine.order_set_status'); +}; diff --git a/config/services/state_machine.xml b/config/services/state_machine.xml deleted file mode 100644 index 487348ff5..000000000 --- a/config/services/state_machine.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/subscription/generator.php b/config/services/subscription/generator.php new file mode 100644 index 000000000..b67ea91ed --- /dev/null +++ b/config/services/subscription/generator.php @@ -0,0 +1,19 @@ +services(); + + $services->set('sylius_mollie.subscription.generator.subscription_schedule', SubscriptionScheduleGenerator::class) + ->public() + ->args([ + service('sylius_mollie.factory.date_period'), + service('sylius_mollie.custom_factory.mollie_subscription_schedule'), + ]); + + $services->alias(SubscriptionScheduleGeneratorInterface::class, 'sylius_mollie.subscription.generator.subscription_schedule'); +}; diff --git a/config/services/subscription/generator.xml b/config/services/subscription/generator.xml deleted file mode 100644 index 0201e42e5..000000000 --- a/config/services/subscription/generator.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/services/subscription/guard.php b/config/services/subscription/guard.php new file mode 100644 index 000000000..1e9d0a562 --- /dev/null +++ b/config/services/subscription/guard.php @@ -0,0 +1,15 @@ +services(); + + $services->set('sylius_mollie.subscription.guard.subscription', SubscriptionGuard::class) + ->public(); + + $services->alias(SubscriptionGuardInterface::class, 'sylius_mollie.subscription.guard.subscription'); +}; diff --git a/config/services/subscription/guard.xml b/config/services/subscription/guard.xml deleted file mode 100644 index d38837302..000000000 --- a/config/services/subscription/guard.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - diff --git a/config/services/subscription/processor.php b/config/services/subscription/processor.php new file mode 100644 index 000000000..24e3f3601 --- /dev/null +++ b/config/services/subscription/processor.php @@ -0,0 +1,53 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.subscription.processor.subscription', SubscriptionProcessor::class) + ->args([ + service('sylius_mollie.cloner.subscription_order'), + service('sylius.custom_factory.payment'), + service('sylius.repository.order'), + service('sylius_mollie.factory.payment_details'), + service('sylius_mollie.repository.mollie_subscription'), + service('payum'), + service('sylius.repository.gateway_config'), + ]); + + $services->alias(SubscriptionProcessorInterface::class, 'sylius_mollie.subscription.processor.subscription'); + + $services->set('sylius_mollie.subscription.processor.subscription_schedule', SubscriptionScheduleProcessor::class) + ->args([ + service('sylius_mollie.repository.mollie_subscription_schedule'), + service('sylius_mollie.subscription.generator.subscription_schedule'), + ]); + + $services->alias(SubscriptionScheduleProcessorInterface::class, 'sylius_mollie.subscription.processor.subscription_schedule'); + + $services->set('sylius_mollie.subscription.processor.cancel_recurring_subscription', CancelRecurringSubscriptionProcessor::class) + ->args([service('payum')]); + + $services->alias(CancelRecurringSubscriptionProcessorInterface::class, 'sylius_mollie.subscription.processor.cancel_recurring_subscription'); + + $services->set('sylius_mollie.subscription.processor.subscription_payment', SubscriptionPaymentProcessor::class) + ->args([ + service('sylius_mollie.repository.mollie_subscription'), + service('payum'), + ]); + + $services->alias(SubscriptionPaymentProcessorInterface::class, 'sylius_mollie.subscription.processor.subscription_payment'); +}; diff --git a/config/services/subscription/processor.xml b/config/services/subscription/processor.xml deleted file mode 100644 index 87dde1f2f..000000000 --- a/config/services/subscription/processor.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/twig.php b/config/services/twig.php new file mode 100644 index 000000000..15b31890f --- /dev/null +++ b/config/services/twig.php @@ -0,0 +1,68 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius_mollie.twig.functions', ['sylius_mollie_render_email_template']); + + $services->set('sylius_mollie.twig.parser.content', ContentParser::class) + ->public() + ->args([ + service('twig'), + '%sylius_mollie.twig.functions%', + service('translator'), + ]); + + $services->alias(ContentParserInterface::class, 'sylius_mollie.twig.parser.content'); + + $services->set('sylius_mollie.twig.extension.mollie_plugin_latest_version', MolliePluginLatestVersion::class) + ->tag('twig.extension'); + + $services->set('sylius_mollie.twig.extension.customer_credit_cards', CustomerCreditCards::class) + ->args([ + service('sylius_mollie.repository.mollie_customer'), + service('sylius.context.customer'), + ]) + ->tag('twig.extension'); + + $services->set('sylius_mollie.twig.extension.apple_pay_direct_enabled', ApplePayDirectEnabled::class) + ->args([service('sylius_mollie.apple_pay.checker.apple_pay_enabled')]) + ->tag('twig.extension'); + + $services->set('sylius_mollie.twig.extension.divisor_provider', DivisorProvider::class) + ->args([service('sylius_mollie.provider.divisor')]) + ->tag('twig.extension'); + + $services->set('sylius_mollie.twig.extension.legacy_refund', LegacyRefundExtension::class) + ->args([service('sylius_mollie.payum.checker.mollie_gateway_factory')]) + ->tag('twig.extension'); + + $services->set('sylius_mollie.twig.component.email_template.form', ResourceFormComponent::class) + ->args([ + service('sylius_mollie.repository.template_mollie_email'), + service('form.factory'), + '%sylius_mollie.model.template_mollie_email.class%', + TemplateMollieEmailType::class, + ]) + ->tag('sylius.live_component.admin', ['key' => 'sylius_mollie:admin:email_template:form']); + + $services->set('sylius_mollie.twig.component.order.cancel_subscription', CancelSubscriptionComponent::class) + ->args([ + service('sylius_mollie.repository.mollie_subscription'), + service('sylius_abstraction.state_machine'), + ]) + ->tag('sylius.twig_component', ['key' => 'sylius_mollie:shop:order:cancel_subscription']); +}; diff --git a/config/services/twig.xml b/config/services/twig.xml deleted file mode 100644 index 50572facf..000000000 --- a/config/services/twig.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - sylius_mollie_render_email_template - - - - - - - %sylius_mollie.twig.functions% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %sylius_mollie.model.template_mollie_email.class% - Sylius\MolliePlugin\Form\Type\TemplateMollieEmailType - - - - - - - - - - - - diff --git a/config/services/updater.php b/config/services/updater.php new file mode 100644 index 000000000..5ed96dfc4 --- /dev/null +++ b/config/services/updater.php @@ -0,0 +1,49 @@ +services(); + $parameters = $container->parameters(); + $parameters->set('sylius_mollie.mollie_payment_methods_refresh_ttl', 7200); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.updater.mollie_payment_method_position', MolliePaymentMethodPositionUpdater::class) + ->args([ + service('sylius_mollie.repository.mollie_gateway_config'), + service('doctrine.orm.entity_manager'), + ]); + + $services->alias(MolliePaymentMethodPositionUpdaterInterface::class, 'sylius_mollie.updater.mollie_payment_method_position'); + + $services->set('sylius_mollie.updater.mollie_methods', MollieMethodsUpdater::class) + ->args([ + service('cache.app'), + service('sylius_mollie.provider.methods.mollie_methods'), + service('sylius_mollie.repository.mollie_gateway_config'), + service('sylius_mollie.factory.mollie_gateway_config'), + service('sylius_mollie.factory.methods'), + service('doctrine.orm.default_entity_manager'), + '%sylius_mollie.mollie_payment_methods_refresh_ttl%', + ]); + + $services->alias(MollieMethodsUpdaterInterface::class, 'sylius_mollie.updater.mollie_methods'); + + $services->set('sylius_mollie.synchronizer.mollie_payment_methods', MolliePaymentMethodsSynchronizer::class) + ->args([ + service('sylius.repository.payment_method'), + service('sylius.context.channel'), + service('sylius_mollie.updater.mollie_methods'), + ]); + + $services->alias(MolliePaymentMethodsSynchronizerInterface::class, 'sylius_mollie.synchronizer.mollie_payment_methods'); +}; diff --git a/config/services/updater.xml b/config/services/updater.xml deleted file mode 100644 index 03cc2fa1e..000000000 --- a/config/services/updater.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - 7200 - - - - - - - - - - - - - - - - - - - %sylius_mollie.mollie_payment_methods_refresh_ttl% - - - - - - - - - - - diff --git a/config/services/uploader.php b/config/services/uploader.php new file mode 100644 index 000000000..5b48b6c84 --- /dev/null +++ b/config/services/uploader.php @@ -0,0 +1,19 @@ +services(); + + $services->set('sylius_mollie.uploader.payment_method_logo', PaymentMethodLogoUploader::class) + ->public() + ->args([inline_service(Filesystem::class) + ->args(['%sylius.uploader.filesystem%']) + ->factory([service('knp_gaufrette.filesystem_map'), 'get'])]); + + $services->alias(PaymentMethodLogoUploaderInterface::class, 'sylius_mollie.uploader.payment_method_logo'); +}; diff --git a/config/services/uploader.xml b/config/services/uploader.xml deleted file mode 100644 index 4e7f4f6fa..000000000 --- a/config/services/uploader.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - diff --git a/config/services/validator.php b/config/services/validator.php new file mode 100644 index 000000000..09e6d14b9 --- /dev/null +++ b/config/services/validator.php @@ -0,0 +1,32 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.validator.payment_surcharge_type', PaymentSurchargeTypeValidator::class) + ->tag('validator.constraint_validator', ['alias' => 'channels']); + + $services->set('sylius_mollie.validator.apple_pay_direct.payment_method_checkout', PaymentMethodCheckoutValidator::class) + ->args([ + service('sylius_mollie.resolver.order.payment_checkout_order'), + service('request_stack'), + service('sylius_mollie.payum.checker.mollie_gateway_factory'), + ]) + ->tag('validator.constraint_validator'); + + $services->set('sylius_mollie.validator.payment_method_mollie_channel_unique', PaymentMethodMollieChannelUniqueValidator::class) + ->args([ + service('sylius_mollie.repository.query.payment_method.mollie_based'), + service('translator'), + ]) + ->tag('validator.constraint_validator'); +}; diff --git a/config/services/validator.xml b/config/services/validator.xml deleted file mode 100644 index 62177d0f6..000000000 --- a/config/services/validator.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/voucher/applicator.php b/config/services/voucher/applicator.php new file mode 100644 index 000000000..41120a762 --- /dev/null +++ b/config/services/voucher/applicator.php @@ -0,0 +1,31 @@ +services(); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.voucher.applicator.units_promotion_adjustments', UnitsVouchersApplicator::class) + ->args([ + service('sylius.custom_factory.adjustment'), + service('sylius.distributor.integer'), + ]); + + $services->alias(UnitsVouchersApplicatorInterface::class, 'sylius_mollie.voucher.applicator.units_promotion_adjustments'); + + $services->set('sylius_mollie.voucher.applicator.order_vouchers', OrderVouchersApplicator::class) + ->args([ + service('sylius.distributor.proportional_integer'), + service('sylius_mollie.voucher.applicator.units_promotion_adjustments'), + ]); + + $services->alias(OrderVouchersApplicatorInterface::class, 'sylius_mollie.voucher.applicator.order_vouchers'); +}; diff --git a/config/services/voucher/applicator.xml b/config/services/voucher/applicator.xml deleted file mode 100644 index 2d6f3cf95..000000000 --- a/config/services/voucher/applicator.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/config/services/voucher/checker.php b/config/services/voucher/checker.php new file mode 100644 index 000000000..f57e93eba --- /dev/null +++ b/config/services/voucher/checker.php @@ -0,0 +1,16 @@ +services(); + + $services->set('sylius_mollie.voucher.checker.product_voucher_type', ProductVoucherTypeChecker::class) + ->public() + ->args([service('sylius_mollie.repository.mollie_gateway_config')]); + + $services->alias(ProductVoucherTypeCheckerInterface::class, 'sylius_mollie.voucher.checker.product_voucher_type'); +}; diff --git a/config/services/voucher/checker.xml b/config/services/voucher/checker.xml deleted file mode 100644 index 924c5ed3e..000000000 --- a/config/services/voucher/checker.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - diff --git a/config/services/voucher/updater.php b/config/services/voucher/updater.php new file mode 100644 index 000000000..4ac11e552 --- /dev/null +++ b/config/services/voucher/updater.php @@ -0,0 +1,20 @@ +services(); + + $services->set('sylius_mollie.voucher.updater.order_voucher_adjustment', OrderVoucherAdjustmentUpdater::class) + ->public() + ->args([ + service('sylius.repository.order'), + service('sylius_mollie.voucher.applicator.order_vouchers'), + service('sylius_mollie.provider.divisor'), + ]); + + $services->alias(OrderVoucherAdjustmentUpdaterInterface::class, 'sylius_mollie.voucher.updater.order_voucher_adjustment'); +}; diff --git a/config/services/voucher/updater.xml b/config/services/voucher/updater.xml deleted file mode 100644 index 0b6bf538f..000000000 --- a/config/services/voucher/updater.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/DependencyInjection/SyliusMollieExtension.php b/src/DependencyInjection/SyliusMollieExtension.php index be8b12ec4..f0db509d9 100644 --- a/src/DependencyInjection/SyliusMollieExtension.php +++ b/src/DependencyInjection/SyliusMollieExtension.php @@ -16,24 +16,19 @@ use SyliusLabs\DoctrineMigrationsExtraBundle\DependencyInjection\Configuration; use Symfony\Component\Config\Definition\ConfigurationInterface; use Symfony\Component\Config\FileLocator; -use Symfony\Component\Config\Loader\DelegatingLoader; -use Symfony\Component\Config\Loader\LoaderResolver; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; final class SyliusMollieExtension extends Extension implements PrependExtensionInterface { public function load(array $configs, ContainerBuilder $container): void { $this->processConfiguration($this->getConfiguration([], $container), $configs); - $loader = new DelegatingLoader(new LoaderResolver([ - new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')), - new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config')), - ])); - $loader->load('services.xml'); + + $loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config')); + $loader->load('services.php'); } public function prepend(ContainerBuilder $container): void diff --git a/tests/Behat/Resources/services.php b/tests/Behat/Resources/services.php new file mode 100644 index 000000000..d0d145b60 --- /dev/null +++ b/tests/Behat/Resources/services.php @@ -0,0 +1,27 @@ +services(); + $container->import('services/contexts.yml'); + $container->import('services/pages.yml'); + + $services->defaults() + ->public(); + + $services->set('sylius_mollie.client.mollie_api', TestMollieApiClient::class); +}; diff --git a/tests/Behat/Resources/services.xml b/tests/Behat/Resources/services.xml deleted file mode 100644 index 9dcb91143..000000000 --- a/tests/Behat/Resources/services.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - diff --git a/tests/TestApplication/config/services_test.php b/tests/TestApplication/config/services_test.php index 7e590e29b..3d6fcd201 100644 --- a/tests/TestApplication/config/services_test.php +++ b/tests/TestApplication/config/services_test.php @@ -9,6 +9,6 @@ if (str_starts_with($env, 'test')) { $container->import('../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml'); - $container->import('@SyliusMolliePlugin/tests/Behat/Resources/services.xml'); + $container->import('@SyliusMolliePlugin/tests/Behat/Resources/services.php'); } };