Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      50.00%  | 
      1 / 2  | 
      CRAP |         | 
      95.24%  | 
      20 / 21  | 
     
| StudentConventionTransformer |         | 
      0.00%  | 
      0 / 1  | 
              | 
      50.00%  | 
      1 / 2  | 
      11 |         | 
      95.24%  | 
      20 / 21  | 
     
| transform |         | 
      0.00%  | 
      0 / 1  | 
      5.01 |         | 
      91.67%  | 
      11 / 12  | 
     |||
| reverseTransform |         | 
      100.00%  | 
      1 / 1  | 
      6 |         | 
      100.00%  | 
      9 / 9  | 
     |||
| <?php | |
| /* | |
| * This file is part of the Incipio package. | |
| * | |
| * (c) Théo FIDRY <theo.fidry@gmail.com> | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ | |
| namespace FrontBundle\Form\DataTransformer; | |
| use FrontBundle\Utils\IriHelper; | |
| use Symfony\Component\Form\DataTransformerInterface; | |
| /** | |
| * @link http://symfony.com/doc/current/cookbook/form/data_transformers.html#about-model-and-view-transformers | |
| * | |
| * @author Théo FIDRY <theo.fidry@gmail.com> | |
| */ | |
| class StudentConventionTransformer implements DataTransformerInterface | |
| { | |
| /** | |
| * API URI for the StudentConvention. Is put as a constant here to avoid to have to inject the router service to | |
| * generate it. This would indeed result in declaring those forms as services which is quite heavy and ugly. | |
| */ | |
| const API_URI_PREFIX = '/api/student_conventions'; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function transform($value) | |
| { | |
| if (null === $value) { | |
| return; | |
| } | |
| if (isset($value['@id'])) { | |
| $value['@id'] = IriHelper::extractId($value['@id']); | |
| } | |
| if (isset($value['dateOfSignature'])) { | |
| $value['dateOfSignature'] = (true === empty($value['dateOfSignature'])) | |
| ? null | |
| : new \DateTime($value['dateOfSignature']) | |
| ; | |
| } | |
| return $value; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function reverseTransform($value) | |
| { | |
| if (null === $value) { | |
| return; | |
| } | |
| if (isset($value['@id']) && false === empty($value['@id'])) { | |
| $value['@id'] = sprintf('%s/%s', self::API_URI_PREFIX, IriHelper::extractId($value['@id'])); | |
| } | |
| if (isset($value['dateOfSignature']) && $value['dateOfSignature'] instanceof \DateTime) { | |
| $value['dateOfSignature'] = $value['dateOfSignature']->format('Y-m-d\TH:i:sP'); | |
| } | |
| return $value; | |
| } | |
| } |