feat : ajout de l'auth et du guichet pour la récupération d'info bovin

This commit is contained in:
2026-01-23 10:03:14 +01:00
commit b279f1ac47
25 changed files with 4565 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
namespace Malio\EdnotifBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
final class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder(): TreeBuilder
{
$treeBuilder = new TreeBuilder('ednotif');
$root = $treeBuilder->getRootNode();
$root
->children()
->scalarNode('guichet_wsdl')->cannotBeEmpty()->isRequired()->end()
->scalarNode('metier_wsdl')->cannotBeEmpty()->isRequired()->end()
->scalarNode('entreprise')->cannotBeEmpty()->isRequired()->end()
->scalarNode('zone')->defaultNull()->end()
->scalarNode('application')->defaultNull()->end()
->scalarNode('login')->cannotBeEmpty()->isRequired()->end()
->scalarNode('password')->cannotBeEmpty()->isRequired()->end()
->integerNode('token_ttl_seconds')->min(30)->defaultValue(900)->end()
->arrayNode('soap_options')
->addDefaultsIfNotSet()
->children()
->booleanNode('trace')->defaultFalse()->end()
->booleanNode('exceptions')->defaultTrue()->end()
->integerNode('connection_timeout')->min(1)->defaultValue(15)->end()
->integerNode('cache_wsdl')->defaultValue(\WSDL_CACHE_BOTH)->end()
->integerNode('features')->defaultValue(\SOAP_SINGLE_ELEMENT_ARRAYS)->end()
->end()
->end()
->end();
return $treeBuilder;
}
}

View File

@@ -0,0 +1,47 @@
<?php
declare(strict_types=1);
namespace Malio\EdnotifBundle\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
final class EdnotifExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container): void
{
$configuration = new Configuration();
/** @var array{
* guichet_wsdl:string,
* metier_wsdl:string,
* entreprise:string,
* zone:?string,
* application:?string,
* login:string,
* password:string,
* token_ttl_seconds:int,
* soap_options:array<string,mixed>
* } $config
*/
$config = $this->processConfiguration($configuration, $configs);
$container->setParameter('ednotif.guichet_wsdl', $config['guichet_wsdl']);
$container->setParameter('ednotif.metier_wsdl', $config['metier_wsdl']);
$container->setParameter('ednotif.entreprise', $config['entreprise']);
$container->setParameter('ednotif.zone', $config['zone']);
$container->setParameter('ednotif.application', $config['application']);
$container->setParameter('ednotif.login', $config['login']);
$container->setParameter('ednotif.password', $config['password']);
$container->setParameter('ednotif.token_ttl_seconds', $config['token_ttl_seconds']);
$container->setParameter('ednotif.soap_options', $config['soap_options']);
$loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config'));
$loader->load('services.php');
}
}