Files
CloudOps/docker-compose/mautic-setup/mautic-backup-files/docroot/app/bundles/ApiBundle/Config/services.php

48 lines
1.9 KiB
PHP
Executable File

<?php
declare(strict_types=1);
use FOS\OAuthServerBundle\Form\Handler\AuthorizeFormHandler;
use Mautic\CoreBundle\DependencyInjection\MauticCoreExtension;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
return function (ContainerConfigurator $configurator): void {
$services = $configurator->services()
->defaults()
->autowire()
->autoconfigure()
->public();
$excludes = [
'Serializer/Exclusion',
'Helper/BatchIdToEntityHelper.php',
];
$services->load('Mautic\\ApiBundle\\', '../')
->exclude('../{'.implode(',', array_merge(MauticCoreExtension::DEFAULT_EXCLUDES, $excludes)).'}');
$services->load('Mautic\\ApiBundle\\Entity\\oAuth2\\', '../Entity/oAuth2/*Repository.php');
$services->alias(AuthorizeFormHandler::class, 'fos_oauth_server.authorize.form.handler.default');
$services->get(Mautic\ApiBundle\Controller\oAuth2\AuthorizeController::class)
->arg('$authorizeForm', service('fos_oauth_server.authorize.form'))
->arg('$oAuth2Server', service('fos_oauth_server.server'))
->arg('$clientManager', service('fos_oauth_server.client_manager.default'))
->tag('controller.service_arguments');
$services->alias('mautic.api.model.client', Mautic\ApiBundle\Model\ClientModel::class);
// Register custom PUT processor to fix PUT operations globally
// This ensures PUT requests update existing entities instead of creating new ones
// This decorates the default persist processor so it applies to all entities automatically
$services->set(Mautic\ApiBundle\State\PutProcessor::class)
->decorate('api_platform.doctrine.orm.state.persist_processor')
->args([
service('.inner'),
service('doctrine.orm.entity_manager'),
]);
};