<?php
/**
* @copyright Copyright (C) Ibexa AS. All rights reserved.
* @license For full copyright and license information view LICENSE file distributed with this source code.
*/
declare(strict_types=1);
namespace Ibexa\Bundle\Shipping;
use Ibexa\Bundle\Shipping\DependencyInjection\Compiler\ShippingMethodStorageGatewayCompilerPass;
use Ibexa\Bundle\Shipping\DependencyInjection\Configuration\ShippingParser;
use Ibexa\Bundle\Shipping\DependencyInjection\Configuration\SiteAccessAware\ShipmentParser as SiteAccessAwareConfigurationShipmentParser;
use Ibexa\Bundle\Shipping\DependencyInjection\Configuration\SiteAccessAware\ShippingParser as SiteAccessAwareConfigurationParser;
use Ibexa\Shipping\Security\ShipmentPolicyProvider;
use Ibexa\Shipping\Security\ShippingMethodPolicyProvider;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
final class IbexaShippingBundle extends Bundle
{
public function build(ContainerBuilder $container): void
{
/** @var \Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension $core */
$core = $container->getExtension('ibexa');
$core->addDefaultSettings(__DIR__ . '/Resources/config', ['default_settings.yaml']);
$core->addRepositoryConfigParser(new ShippingParser());
$core->addConfigParser(new SiteAccessAwareConfigurationParser());
$core->addConfigParser(new SiteAccessAwareConfigurationShipmentParser());
$core->addPolicyProvider(new ShipmentPolicyProvider());
$core->addPolicyProvider(new ShippingMethodPolicyProvider());
$container->addCompilerPass(new ShippingMethodStorageGatewayCompilerPass());
}
}