<?php
namespace Galilee\GraphQlBundle;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\AskResetPasswordCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\CustomMutationCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\CustomQueryCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\ImpersonateUserCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\LoginCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\PimcoreQueryListingOverrideCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\PimcoreTypeExtensionCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\PimcoreOperationEventManagerCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\ResetPasswordCompilerPass;
use Galilee\GraphQlBundle\DependencyInjection\Compiler\SignupCompilerPass;
use Galilee\GraphQlBundle\GraphQl\CustomMutationInterface;
use Galilee\GraphQlBundle\GraphQl\CustomQueryInterface;
use Galilee\GraphQlBundle\GraphQl\PimcoreOperationEventManagerInterface;
use Galilee\GraphQlBundle\GraphQl\PimcoreQueryListingOverrideInterface;
use Galilee\GraphQlBundle\GraphQl\PimcoreTypeExtensionInterface;
use Galilee\GraphQlBundle\Services\Security\AskResetPasswordSecurityInterface;
use Galilee\GraphQlBundle\Services\Security\ImpersonateUserSecurityInterface;
use Galilee\GraphQlBundle\Services\Security\LoginSecurityInterface;
use Galilee\GraphQlBundle\Services\Security\ResetPasswordSecurityInterface;
use Galilee\GraphQlBundle\Services\Security\SignupSecurityInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class GraphQlBundle extends Bundle
{
public function build(ContainerBuilder $container)
{
$container->registerForAutoconfiguration(CustomQueryInterface::class)
->addTag('galilee.graphql.custom.queries');
$container->addCompilerPass(new CustomQueryCompilerPass());
$container->registerForAutoconfiguration(CustomMutationInterface::class)
->addTag('galilee.graphql.custom.mutations');
$container->addCompilerPass(new CustomMutationCompilerPass());
$container->registerForAutoconfiguration(PimcoreQueryListingOverrideInterface::class)
->addTag('galilee.graphql.query.listing.override');
$container->addCompilerPass(new PimcoreQueryListingOverrideCompilerPass());
$container->registerForAutoconfiguration(PimcoreTypeExtensionInterface::class)
->addTag('galilee.graphql.type.extension');
$container->addCompilerPass(new PimcoreTypeExtensionCompilerPass());
$container->registerForAutoconfiguration(PimcoreOperationEventManagerInterface::class)
->addTag('galilee.graphql.pimcore.operation.event.manager');
$container->addCompilerPass(new PimcoreOperationEventManagerCompilerPass());
$container->registerForAutoconfiguration(LoginSecurityInterface::class)
->addTag('galilee.graphql.pimcore.security.login');
$container->addCompilerPass(new LoginCompilerPass());
$container->registerForAutoconfiguration(SignupSecurityInterface::class)
->addTag('galilee.graphql.pimcore.security.signup');
$container->addCompilerPass(new SignupCompilerPass());
$container->registerForAutoconfiguration(AskResetPasswordSecurityInterface::class)
->addTag('galilee.graphql.pimcore.security.askResetPass');
$container->addCompilerPass(new AskResetPasswordCompilerPass());
$container->registerForAutoconfiguration(ResetPasswordSecurityInterface::class)
->addTag('galilee.graphql.pimcore.security.resetPass');
$container->addCompilerPass(new ResetPasswordCompilerPass());
$container->registerForAutoconfiguration(ImpersonateUserSecurityInterface::class)
->addTag('galilee.graphql.pimcore.security.impersonateUser');
$container->addCompilerPass(new ImpersonateUserCompilerPass());
}
}