Files
ednotif-bundle/config/services.php

96 lines
3.1 KiB
PHP

<?php
declare(strict_types=1);
use Malio\EdnotifBundle\Auth\TokenProvider;
use Malio\EdnotifBundle\Bovin\Api\BovinApi;
use Malio\EdnotifBundle\Bovin\Api\BovinApiInterface;
use Malio\EdnotifBundle\Bovin\Mapper\AnimalFileMapper;
use Malio\EdnotifBundle\Bovin\Mapper\AnimalSummaryMapper;
use Malio\EdnotifBundle\Bovin\Mapper\InventoryMapper;
use Malio\EdnotifBundle\Bovin\Mapper\PresumedExitsMapper;
use Malio\EdnotifBundle\Bovin\Mapper\ReturnedDossiersMapper;
use Malio\EdnotifBundle\Shared\Mapper\StandardResponseMapper;
use Malio\EdnotifBundle\Shared\Soap\SoapClientFactory;
use Malio\EdnotifBundle\Shared\Soap\ZipMessageDecoder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
return static function (ContainerConfigurator $container): void {
$services = $container->services()
->defaults()
->autowire()
->autoconfigure()
;
$services->set(SoapClientFactory::class)
->arg('$soapOptions', '%ednotif.soap_options%')
;
$services->set(StandardResponseMapper::class);
$services->set('ednotif.soap.guichet', SoapClient::class)
->factory([service(SoapClientFactory::class), 'create'])
->args(['%ednotif.guichet_wsdl%'])
;
$services->set('ednotif.soap.business', SoapClient::class)
->factory([service(SoapClientFactory::class), 'create'])
->args(['%ednotif.metier_wsdl%'])
;
$services->set(AnimalFileMapper::class)->args([service(StandardResponseMapper::class)]);
$services->set(ZipMessageDecoder::class);
$services->set(AnimalSummaryMapper::class);
$services->set(InventoryMapper::class)
->args([
service(AnimalSummaryMapper::class),
service(StandardResponseMapper::class),
])
;
$services->set(ReturnedDossiersMapper::class)
->args([
service(AnimalSummaryMapper::class),
service(StandardResponseMapper::class),
])
;
$services->set(PresumedExitsMapper::class)
->args([
service(StandardResponseMapper::class),
])
;
$services->set(TokenProvider::class)
->args([
service('ednotif.soap.guichet'),
'%ednotif.exploitation_code%',
'%ednotif.zone%',
'%ednotif.application%',
'%ednotif.login%',
'%ednotif.password%',
'%ednotif.token_ttl_seconds%',
service('cache.app'),
])
;
$services->set(BovinApi::class)
->args([
service(TokenProvider::class),
service('ednotif.soap.business'),
service(AnimalFileMapper::class),
service(InventoryMapper::class),
service(ReturnedDossiersMapper::class),
service(PresumedExitsMapper::class),
service(ZipMessageDecoder::class),
'%ednotif.exploitation_country_code%',
'%ednotif.exploitation_number%',
])
;
$services->alias(BovinApiInterface::class, BovinApi::class)->public();
};