src/Entity/MediaObject.php line 56

Open in your IDE?
  1. <?php
  2. // api/src/Entity/MediaObject.php
  3. namespace App\Entity;
  4. use ApiPlatform\Metadata\ApiProperty;
  5. use ApiPlatform\Metadata\ApiResource;
  6. use ApiPlatform\Metadata\Get;
  7. use ApiPlatform\Metadata\GetCollection;
  8. use ApiPlatform\Metadata\Post;
  9. use ApiPlatform\Metadata\Delete;
  10. use App\Controller\CreateMediaObjectAction;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use Doctrine\Common\Collections\Collection;
  13. use Doctrine\ORM\Mapping as ORM;
  14. use Symfony\Component\HttpFoundation\File\File;
  15. use Symfony\Component\Serializer\Annotation\Groups;
  16. use Symfony\Component\Validator\Constraints as Assert;
  17. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  18. use ApiPlatform\Metadata\ApiFilter;
  19. use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
  20. #[Vich\Uploadable]
  21. #[ORM\Entity]
  22. #[ApiResource(
  23.     normalizationContext: ['groups' => ['media_object:read']], 
  24.     types: ['https://schema.org/MediaObject'],
  25.     operations: [
  26.         new Get(),
  27.         new GetCollection(),
  28.         new Delete(),
  29.         new Post(
  30.             controllerCreateMediaObjectAction::class, 
  31.             deserializefalse
  32.             validationContext: ['groups' => ['Default''media_object_create']], 
  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.     ]
  52. )]
  53. class MediaObject
  54. {
  55.     #[Groups(['media_object:read''product:read''user_like:read''pre_order:read''order:read','order_product:read','user:read''account:read''load_invoice:read''formAnswer:read'])]
  56.     #[ORM\IdORM\ColumnORM\GeneratedValue]
  57.     private ?int $id null;
  58.     #[ApiProperty(types: ['https://schema.org/contentUrl'])]
  59.     #[Groups(['media_object:read''product:read''cat:read''user_like:read''pre_order:read''order:read','order_product:read''user:read''account:read''load_invoice:read''formAnswer:read'])]
  60.     public ?string $contentUrl null;
  61.     #[Vich\UploadableField(mapping"media_object"fileNameProperty"filePath")]
  62.     #[Assert\NotNull(groups: ['media_object_create'])]
  63.     public ?File $file null;
  64.     #[ORM\Column(nullabletrue)] 
  65.     public ?string $filePath null;
  66.     #[ORM\ManyToOne(inversedBy'media')]
  67.     private ?FormAnswer $formAnswer null;
  68.     public function __construct()
  69.     {
  70.     }
  71.     public function getId(): ?int
  72.     
  73.         return $this->id;
  74.     }
  75.     public function getFormAnswer(): ?FormAnswer
  76.     {
  77.         return $this->formAnswer;
  78.     }
  79.     public function setFormAnswer(?FormAnswer $formAnswer): self
  80.     {
  81.         $this->formAnswer $formAnswer;
  82.         return $this;
  83.     }
  84. }