make url and apikey parameters

This commit is contained in:
2024-09-13 04:21:26 +02:00
parent 99417ef9ec
commit 876f356009
3 changed files with 26 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
services: services:
Magdev\RedmineBundle\Client\RedmineClient: Magdev\RedmineBundle\Client\RedmineClient:
arguments: ['@redmine_api.cache', '%env(REDMINE_URL)%', '%env(REDMINE_APIKEY)%', '%magdev_redmine.ttl%'] arguments: ['@redmine_api.cache', '%magdev_redmine.url%', '%magdev_redmine.apiKey%', '%magdev_redmine.cache.ttl%']
redmine.api: '@Magdev\RedmineBundle\Client\RedmineClient' redmine.api: '@Magdev\RedmineBundle\Client\RedmineClient'

View File

@@ -15,11 +15,28 @@ final class Configuration implements ConfigurationInterface
$treeBuilder = new TreeBuilder('magdev_redmine'); $treeBuilder = new TreeBuilder('magdev_redmine');
$rootNode = $treeBuilder->getRootNode(); $rootNode = $treeBuilder->getRootNode();
$rootNode->children() $rootNode->children()
->scalarNode('ttl') ->scalarNode('url')
->isRequired() ->info('URL of the Redmine instance')
->info('TTL for cached api calls') ->example('http://your-redmine.com')
->end() ->cannotBeEmpty()
->end(); ->isRequired()
->end()
->scalarNode('apiKey')
->info('API-Key to access Redmine')
->example('abcdefghijklmnopqrstuvwxyz')
->cannotBeEmpty()
->isRequired()
->end()
->arrayNode('cache')
->scalarNode('ttl')
->info('TTL for cached API calls')
->example([1800, 'P30M'])
->defaultValue(1800)
->cannotBeEmpty()
->isRequired()
->end()
->end()
->end();
return $treeBuilder; return $treeBuilder;
} }

View File

@@ -17,7 +17,9 @@ final class MagdevRedmineExtension extends Extension
{ {
$config = $this->processConfiguration(new Configuration(), $configs); $config = $this->processConfiguration(new Configuration(), $configs);
$container->setParameter('magdev_redmine.ttl', $config['ttl']); $container->setParameter('magdev_redmine.cache.ttl', $config['cache']['ttl']);
$container->setParameter('magdev_redmine.url', $config['url']);
$container->setParameter('magdev_redmine.apiKey', $config['apiKey']);
$loader = new YamlFileLoader($container, new FileLocator(dirname(__DIR__).'/../config')); $loader = new YamlFileLoader($container, new FileLocator(dirname(__DIR__).'/../config'));
$loader->load('services.yaml'); $loader->load('services.yaml');