/**
  * Validate the route entity
  *
  * @param mixed      $entity
  * @param Constraint $constraint
  */
 public function validate($entity, Constraint $constraint)
 {
     if (!$entity instanceof ClientDetailsInterface) {
         throw new \InvalidArgumentException('Expected instance of ClientDetailsInterface');
     }
     $username = $entity->getUsername();
     $result = $this->clientRepository->findOneBy(['clientDetails.username' => $username]);
     // route is unique always if no result was found
     if (null === $result) {
         return;
     }
     if ($this->context instanceof ExecutionContextInterface) {
         $this->context->buildViolation($constraint->message)->setParameter('{{ url }}', $this->routerHelper->generateUrl('front.client.login'))->atPath('username')->setInvalidValue($username)->addViolation();
     }
 }
 /**
  * @return Facebook
  */
 public function getProvider()
 {
     if (null === $this->facebookProvider) {
         $this->facebookProvider = new Facebook(['clientId' => $this->appId, 'clientSecret' => $this->appSecret, 'redirectUri' => $this->routerHelper->generateUrl('oauth.facebook.check', [], UrlGeneratorInterface::ABSOLUTE_URL), 'graphApiVersion' => self::GRAPH_API_VERSION]);
     }
     return $this->facebookProvider;
 }
 private function createRedirectUrls(PaymentInterface $payment) : RedirectUrls
 {
     $redirectUrls = new RedirectUrls();
     $redirectUrls->setReturnUrl($this->routerHelper->generateUrl('front.payment.confirm', ['token' => $payment->getToken()]));
     $redirectUrls->setCancelUrl($this->routerHelper->generateUrl('front.payment.cancel', ['token' => $payment->getToken()]));
     return $redirectUrls;
 }
 /**
  * Resolves action which can be used in controller method call
  *
  * @param BoxControllerInterface $controller
  *
  * @return string
  */
 private function resolveControllerAction(BoxControllerInterface $controller)
 {
     $currentAction = $this->routerHelper->getCurrentAction();
     if ($this->routerHelper->hasControllerAction($controller, $currentAction)) {
         return $currentAction;
     }
     return 'indexAction';
 }
 private function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(['app_id', 'app_secret', 'page_token', 'scopes', 'graph_version', 'redirect_route', 'redirect_uri']);
     $resolver->setDefault('graph_version', 'v2.5');
     $resolver->setDefault('scopes', ['email']);
     $resolver->setDefault('redirect_route', 'oauth.facebook.check');
     $resolver->setDefault('redirect_uri', function (Options $options) {
         return $this->routerHelper->generateUrl($options['redirect_route'], [], UrlGeneratorInterface::ABSOLUTE_URL);
     });
     $resolver->setAllowedTypes('app_id', ['string', 'int', 'null']);
     $resolver->setAllowedTypes('app_secret', ['string', 'null']);
     $resolver->setAllowedTypes('page_token', ['string', 'null']);
     $resolver->setAllowedTypes('scopes', 'array');
     $resolver->setAllowedTypes('graph_version', 'string');
     $resolver->setAllowedTypes('redirect_route', 'string');
     $resolver->setAllowedTypes('redirect_uri', 'string');
 }
 /**
  * @param RouteInterface $route
  *
  * @return string
  */
 private function generatePath(RouteInterface $route)
 {
     return $this->routerHelper->generateUrl('dynamic_' . $route->getId());
 }