src/Entity/Media.php line 95

  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraint;
  5. use ApiPlatform\Metadata\ApiResource,
  6.     ApiPlatform\Metadata\Get,
  7.     ApiPlatform\Metadata\Post;
  8. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  9. use App\Repository\MediaRepository;
  10. use App\Controller\CreateMediaAction,
  11.     App\DTO\CloneDTO,
  12.     App\StateProcessor\CloneProcessor,
  13.     App\Security\Voter\CloneVoter,
  14.     App\Lib\Actions;
  15. use App\Controller\CreateResizeMediaAction,
  16.     App\StateProcessor\PostCreateResizeMediaProcessor;
  17. #[ApiResource(
  18.     normalizationContext: ['groups' => ['read''read:' self::class]],
  19.     operations: [
  20.         new Get(),
  21.         new Post(
  22.             uriTemplate'/media/clone',
  23.             inputCloneDTO::class,
  24.             processorCloneProcessor::class,
  25.             security'is_granted("' Actions::CLONE .'")',
  26.             securityMessageCloneVoter::MESSAGE
  27.         ),
  28.         new Post(
  29.             controllerCreateMediaAction::class,
  30.             deserializefalse,
  31.             validationContext: ['groups' => [Constraint::DEFAULT_GROUP'post']],
  32.             openapiContext: [
  33.                 'requestBody' => [
  34.                     'content' => [
  35.                         'multipart/form-data' => [
  36.                             'schema' => [
  37.                                 'type' => 'object',
  38.                                 'properties' => [
  39.                                     'file' => [
  40.                                         'type' => 'string',
  41.                                         'format' => 'binary'
  42.                                     ]
  43.                                 ]
  44.                             ]
  45.                         ]
  46.                     ]
  47.                 ]
  48.             ]
  49.         ),
  50.         new Post(
  51.             uriTemplate'/media/resize',
  52.             controllerCreateResizeMediaAction::class,
  53.             processorPostCreateResizeMediaProcessor::class,
  54.             deserializefalse,
  55.             validationContext: ['groups' => [Constraint::DEFAULT_GROUP'post']],
  56.             openapiContext: [
  57.                 'requestBody' => [
  58.                     'content' => [
  59.                         'multipart/form-data' => [
  60.                             'schema' => [
  61.                                 'type' => 'object',
  62.                                 'properties' => [
  63.                                     'file' => [
  64.                                         'type' => 'string',
  65.                                         'format' => 'binary'
  66.                                     ],
  67.                                     'width' => [
  68.                                         'type' => 'integer',
  69.                                         'format' => 'int32'
  70.                                     ],
  71.                                     'height' => [
  72.                                         'type' => 'integer',
  73.                                         'format' => 'int32'
  74.                                     ]
  75.                                 ]
  76.                             ]
  77.                         ]
  78.                     ]
  79.                 ]
  80.             ],
  81.         ),
  82.     ],
  83.     extraProperties: ['standard_put' => false],
  84. )]
  85. #[Vich\Uploadable]
  86. #[ORM\Entity(repositoryClassMediaRepository::class)]
  87. class Media extends AbstractMedia
  88. {
  89. }