<?php

namespace remiii\MandrillMailerBundle\DependencyInjection ;

use Symfony\Component\DependencyInjection\ContainerBuilder ;
use Symfony\Component\Config\FileLocator ;
use Symfony\Component\HttpKernel\DependencyInjection\Extension ;
use Symfony\Component\DependencyInjection\Loader ;

/**
 * This is the class that loads and manages your bundle configuration
 *
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html}
 */
class remiiiMandrillMailerExtension extends Extension
{
    /**
     * {@inheritdoc}
     */
    public function load ( array $configs , ContainerBuilder $container )
    {
        $configuration = new Configuration ( ) ;
        $config = $this -> processConfiguration ( $configuration , $configs ) ;

        $loader = new Loader\YamlFileLoader ( $container , new FileLocator ( __DIR__ . '/../Resources/config' ) ) ;
        $loader -> load ( 'services.yml' ) ;

        $crudRegistryServiceDefinition = $container -> getDefinition ( 'swiftmailer.mailer.transport.mandrill' ) ;
        $crudRegistryServiceDefinition -> addMethodCall ( 'setApiKey' , array ( $config [ 'api_key' ] ) ) ;
        $crudRegistryServiceDefinition -> addMethodCall ( 'setAsync' , array ( $config [ 'async' ] ) ) ;

        $container -> setAlias ( 'remiii_mandrill_mailer' , 'swiftmailer.mailer.transport.mandrill' ) ;
    }
}
