Initial commit

This commit is contained in:
2023-04-25 15:00:03 +02:00
commit 1b28f3d45a
11 changed files with 272 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
namespace Magdev\RedmineBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* @author Marco Grätsch <magdev3.0@gmail.com>
*/
final class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder(): TreeBuilder
{
$treeBuilder = new TreeBuilder('magdev_gitea');
$rootNode = $treeBuilder->getRootNode();
$rootNode->fixXmlConfig('connection')
->children()
->arrayNode('connections')
->useAttributeAsKey('name')
->normalizeKeys(false)
->arrayPrototype()
->children()
->scalarNode('baseurl')
->isRequired()
->info('The base URL of the gitea instance')
->end()
->scalarNode('token')
->isRequired()
->info('The Gitea access token')
->end()
->end()
->end()
->end()
->scalarNode('default_connection')->end()
;
return $treeBuilder;
}
}

View File

@@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
namespace Magdev\RedmineBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
/**
* @author Marco Grätsch <magdev3.0@gmail.com>
*/
final class MagdevRedmineExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$config = $this->processConfiguration(new Configuration(), $configs);
/*if (!isset($config['default_connection'])) {
$config['default_connection'] = array_key_first($config['connections']);
}
foreach ($config['connections'] as $name => $connection) {
$id = sprintf('magdev.gitea.%s', $name);
$container->register($id, Client::class)
->setArguments([null, null, $connection['baseurl']])
->addMethodCall('authenticate', [$connection['token'], null, Client::AUTH_ACCESS_TOKEN]);
$container->registerAliasForArgument($id, Client::class, "{$name}Client");
if ($name === $config['default_connection']) {
$container->setAlias(Client::class, $id);
}
}*/
}
}