/**
  * Checks if the object is supported.
  *
  * @param ParamConverter $configuration Should be an instance of ParamConverter
  *
  * @return bool True if the object is supported, else false
  */
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getConverter()) {
         return false;
     }
     return 'drupal.router_item' === $configuration->getConverter();
 }
Example #2
0
 /**
  * execute
  *
  * @param Request              $request
  * @param SensioParamConverter $configuration
  *
  * @return bool|mixed
  */
 public function execute(Request $request, SensioParamConverter $configuration)
 {
     $id = $request->attributes->get('id');
     $locale = $request->attributes->get('locale');
     $url = $request->attributes->get('url');
     $name = $configuration->getName();
     $options = $configuration->getOptions();
     $resolvedClass = $configuration->getClass();
     $method = $request->getMethod();
     $rawPayload = $request->getContent();
     switch (true) {
         case 'GET' === $method:
             $convertedValue = $this->loadEntity($resolvedClass, $id, $locale, $url);
             break;
         case 'DELETE' === $method:
             $convertedValue = $this->loadEntity($resolvedClass, $id, $locale, $url);
             break;
         case 'PUT' === $method:
             $payload = array_merge(array('id' => $id), json_decode($rawPayload, true));
             $convertedValue = $this->updateEntity($resolvedClass, json_encode($payload));
             break;
         case 'POST' === $method:
             $convertedValue = $this->updateEntity($resolvedClass, $rawPayload);
             break;
     }
     return $convertedValue;
 }
 /**
  * @param ParamConverter $configuration
  * @return bool
  */
 protected function checkFailureOnValidationError(ParamConverter $configuration)
 {
     if (isset($configuration->getOptions()['fail_on_validation_error'])) {
         return $configuration->getOptions()['fail_on_validation_error'];
     }
     return $this->failOnValidationError;
 }
 public function it_should_support(ParamConverter $configuration)
 {
     $configuration->getClass()->willReturn(JsonApi::class);
     $this->supports($configuration)->shouldReturn(true);
     $configuration->getClass()->willReturn(stdClass::class);
     $this->supports($configuration)->shouldReturn(false);
 }
Example #5
0
 function supports(ParamConverter $configuration)
 {
     if ('json' !== $configuration->getNAme()) {
         return false;
     }
     return true;
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     return isset(self::$supportedTypes[$configuration->getClass()]);
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (!$configuration->getClass()) {
         return false;
     }
     return true;
 }
Example #8
0
 /**
  * Checks if the object is supported.
  *
  * @param ParamConverter $configuration Should be an instance of ParamConverter
  *
  * @return bool True if the object is supported, else false
  */
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     return $configuration->getClass() === Category::class;
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (!($class = $configuration->getClass())) {
         return false;
     }
     return 'DTO' === strtoupper(substr($class, -3));
 }
 /**
  * Modifies the ParamConverterManager instance.
  *
  * @param FilterControllerEvent $event A FilterControllerEvent instance
  */
 public function onKernelController(FilterControllerEvent $event)
 {
     $controller = $event->getController();
     $request = $event->getRequest();
     $configurations = array();
     if ($configuration = $request->attributes->get('_converters')) {
         foreach (is_array($configuration) ? $configuration : array($configuration) as $configuration) {
             $configurations[$configuration->getName()] = $configuration;
         }
     }
     if (is_array($controller)) {
         $r = new \ReflectionMethod($controller[0], $controller[1]);
     } else {
         $r = new \ReflectionFunction($controller);
     }
     // automatically apply conversion for non-configured objects
     foreach ($r->getParameters() as $param) {
         if (!$param->getClass() || $param->getClass()->isInstance($request)) {
             continue;
         }
         $name = $param->getName();
         if (!isset($configurations[$name])) {
             $configuration = new ParamConverter(array());
             $configuration->setName($name);
             $configuration->setClass($param->getClass()->getName());
             $configurations[$name] = $configuration;
         } elseif (null === $configurations[$name]->getClass()) {
             $configurations[$name]->setClass($param->getClass()->getName());
         }
         $configurations[$name]->setIsOptional($param->isOptional());
     }
     $this->manager->apply($request, $configurations);
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     return "DateTime" === $configuration->getClass();
 }
 /**
  * Modifies the ParamConverterManager instance.
  *
  * @param FilterControllerEvent $event A FilterControllerEvent instance
  */
 public function onCoreController(FilterControllerEvent $event)
 {
     $controller = $event->getController();
     $request = $event->getRequest();
     $configurations = array();
     if ($configuration = $request->attributes->get('_converters')) {
         $configurations = is_array($configuration) ? $configuration : array($configuration);
     }
     if (is_array($controller)) {
         $r = new \ReflectionMethod($controller[0], $controller[1]);
     } else {
         $r = new \ReflectionFunction($controller);
     }
     // automatically apply conversion for non-configured objects
     foreach ($r->getParameters() as $param) {
         if ($param->getClass() && !$request->attributes->get($param->getName())) {
             $configuration = new ParamConverter(array());
             $configuration->setName($param->getName());
             $configuration->setClass($param->getClass()->getName());
             $configuration->setIsOptional($param->isOptional());
             $configurations[] = $configuration;
         }
     }
     $this->manager->apply($request, $configurations);
 }
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     return in_array($configuration->getClass(), $this->supportedTypes);
 }
Example #14
0
 /**
  * @param ParamConverter $configuration
  * @return bool
  */
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     return 'CiTron\\Project\\Entity\\Project' === $configuration->getClass();
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     return 'ArrayObject' === $configuration->getClass();
 }
 /**
  * Stores the object in the request.
  *
  * @param Request        $request       The request
  * @param ParamConverter $configuration Contains the name, class and options of the object
  *
  * @return boolean True if the object has been successfully set, else false
  *
  * @throws UnsupportedMediaTypeHttpException
  * @throws BadRequestHttpException
  */
 protected function execute(Request $request, ParamConverter $configuration)
 {
     $options = (array) $configuration->getOptions();
     if (isset($options['deserializationContext']) && is_array($options['deserializationContext'])) {
         $context = array_merge($this->context, $options['deserializationContext']);
     } else {
         $context = $this->context;
     }
     if ($this->serializer instanceof SerializerInterface) {
         $context = $this->configureDeserializationContext($this->getDeserializationContext(), $context);
     }
     try {
         $object = $this->serializer->deserialize($request->getContent(), $configuration->getClass(), $request->getContentType(), $context);
     } catch (UnsupportedFormatException $e) {
         throw new UnsupportedMediaTypeHttpException($e->getMessage());
     } catch (JMSSerializerException $e) {
         throw new BadRequestHttpException($e->getMessage());
     } catch (SymfonySerializerException $e) {
         throw new BadRequestHttpException($e->getMessage());
     }
     $request->attributes->set($configuration->getName(), $object);
     if (null !== $this->validator) {
         $validatorOptions = $this->getValidatorOptions($options);
         $request->attributes->set($this->validationErrorsArgument, $this->validator->validate($object, $validatorOptions['groups'], $validatorOptions['traverse'], $validatorOptions['deep']));
     }
     return true;
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     $options = $configuration->getOptions();
     if (isset($options['allowAnonymous'])) {
         return is_bool($options['allowAnonymous']) ? true : false;
     }
     return true;
 }
 function supports(ParamConverter $configuration)
 {
     // Si le nom de l'argument du contrôleur n'est pas "json", on n'applique pas le convertisseur
     if ('json' !== $configuration->getName()) {
         return false;
     }
     return true;
 }
 /**
  * @param Request        $request
  * @param ParamConverter $configuration
  * @return string
  */
 protected function getRequestAttributeName(Request $request, ParamConverter $configuration)
 {
     $param = $configuration->getName();
     if (array_key_exists('id', $configuration->getOptions())) {
         $param = $configuration->getOptions()['id'];
     }
     return $param;
 }
 public function supports(ParamConverter $configuration)
 {
     if (null === $configuration->getClass()) {
         return false;
     }
     $supportedTypes = [SearchRequest::class, SearchRequestInterface::class];
     return in_array($configuration->getClass(), $supportedTypes);
 }
 private function createModel(ParamConverter $configuration)
 {
     $class = $configuration->getClass();
     if (!class_exists($class)) {
         throw new \InvalidArgumentException(sprintf('Failed to load model class [%s]', $class));
     }
     return new $class();
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     $options = $configuration->getOptions();
     if (isset($options['authenticatedUser']) && is_bool($options['authenticatedUser'])) {
         return true;
     }
     return false;
 }
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     $options = $configuration->getOptions();
     if (isset($options['multipleIds']) && $options['multipleIds'] === true) {
         return true;
     }
     return false;
 }
Example #24
0
 /**
  * @param Request        $request
  * @param ParamConverter $configuration
  * @param string         $mapToField
  *
  * @return array
  */
 private function getMappingOptions(Request $request, ParamConverter $configuration, $mapToField)
 {
     $routeParams = $request->attributes->get('_route_params');
     if (isset($routeParams[$configuration->getName()])) {
         return ['mapping' => [$configuration->getName() => $mapToField]];
     }
     return [];
 }
 public function supports(ParamConverter $configuration)
 {
     $class = $configuration->getClass();
     if (!is_string($class)) {
         return null;
     }
     return is_subclass_of($class, 'Surfnet\\StepupBundle\\Request\\JsonConvertible');
 }
 private function getOptions(ParamConverter $configuration)
 {
     $options = array_replace(['model' => $configuration->getClass() . 'Model'], $configuration->getOptions());
     if (isset($options['connection'])) {
         $options['session'] = $this->pomm[$options['session']];
     } else {
         $options['session'] = $this->pomm->getDefaultSession();
     }
     return $options;
 }
 /**
  * Stores the object in the request.
  *
  * @param Request        $request       The request
  * @param ParamConverter $configuration Contains the name, class and options of the object
  *
  * @return bool    True if the object has been successfully set, else false
  */
 public function apply(Request $request, ParamConverter $configuration)
 {
     $options = $configuration->getOptions();
     if (!empty($options['parameters'])) {
         foreach ($options['parameters'] as $parameter) {
             $request->attributes->set($parameter, $request->get($parameter));
         }
     }
     return true;
 }
 public function supports(ParamConverter $configuration)
 {
     if (null === $this->container) {
         return false;
     }
     if ($configuration->getClass() !== 'AppBundle\\Model\\Wiki') {
         return false;
     }
     return true;
 }
Example #29
0
 /**
  * {@inheritdoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (!$configuration instanceof ParamConverter) {
         return false;
     }
     if ('badge_converter' === $configuration->getConverter()) {
         return true;
     }
     return false;
 }
Example #30
0
 /**
  * @{inheritDoc}
  */
 public function supports(ParamConverter $configuration)
 {
     if (!$configuration instanceof ParamConverter) {
         return false;
     }
     $options = $configuration->getOptions();
     if (isset($options['orderable']) && $options['orderable'] === true) {
         return true;
     }
     return false;
 }