src/Entity/Media.php line 102

  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. use App\Controller\TinymceMediaAction;
  18. #[ApiResource(
  19.     normalizationContext: ['groups' => ['read''read:' self::class]],
  20.     operations: [
  21.         new Get(),
  22.         new Post(
  23.             uriTemplate'/media/clone',
  24.             inputCloneDTO::class,
  25.             processorCloneProcessor::class,
  26.             security'is_granted("' Actions::CLONE .'")',
  27.             securityMessageCloneVoter::MESSAGE
  28.         ),
  29.         new Post(
  30.             controllerCreateMediaAction::class,
  31.             deserializefalse,
  32.             validationContext: ['groups' => [Constraint::DEFAULT_GROUP'post']],
  33.             openapiContext: [
  34.                 'requestBody' => [
  35.                     'content' => [
  36.                         'multipart/form-data' => [
  37.                             'schema' => [
  38.                                 'type' => 'object',
  39.                                 'properties' => [
  40.                                     'file' => [
  41.                                         'type' => 'string',
  42.                                         'format' => 'binary'
  43.                                     ]
  44.                                 ]
  45.                             ]
  46.                         ]
  47.                     ]
  48.                 ]
  49.             ]
  50.         ),
  51.         new Post(
  52.             uriTemplate'/media/resize',
  53.             controllerCreateResizeMediaAction::class,
  54.             processorPostCreateResizeMediaProcessor::class,
  55.             deserializefalse,
  56.             validationContext: ['groups' => [Constraint::DEFAULT_GROUP'post']],
  57.             openapiContext: [
  58.                 'requestBody' => [
  59.                     'content' => [
  60.                         'multipart/form-data' => [
  61.                             'schema' => [
  62.                                 'type' => 'object',
  63.                                 'properties' => [
  64.                                     'file' => [
  65.                                         'type' => 'string',
  66.                                         'format' => 'binary'
  67.                                     ],
  68.                                     'width' => [
  69.                                         'type' => 'integer',
  70.                                         'format' => 'int32'
  71.                                     ],
  72.                                     'height' => [
  73.                                         'type' => 'integer',
  74.                                         'format' => 'int32'
  75.                                     ]
  76.                                 ]
  77.                             ]
  78.                         ]
  79.                     ]
  80.                 ]
  81.             ],
  82.         ),
  83.         new Post(
  84.             uriTemplate'/media/tinymce',
  85.             controllerTinymceMediaAction::class,
  86.             deserializefalse,
  87.             validationContext: ['groups' => [Constraint::DEFAULT_GROUP'post']],
  88.         ),
  89.     ],
  90.     extraProperties: ['standard_put' => false],
  91. )]
  92. #[Vich\Uploadable]
  93. #[ORM\Entity(repositoryClassMediaRepository::class)]
  94. class Media extends AbstractMedia
  95. {
  96. }