src/Domain/Entity/Metadata.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Domain\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\Delete;
  5. use ApiPlatform\Metadata\Get;
  6. use ApiPlatform\Metadata\GetCollection;
  7. use ApiPlatform\Metadata\Put;
  8. use App\Application\Controller\Api\Metadata\SeoAction;
  9. use App\Application\Controller\Api\Metadata\SyncAction;
  10. use App\Domain\Entity\Behavior\Identifiable;
  11. use Gedmo\Timestampable\Traits\Timestampable;
  12. /**
  13.  * Class Metadata
  14.  *
  15.  * @package App\Domain\Entity
  16.  */
  17. #[ApiResource(
  18.     operations            : [
  19.         new Delete(security"is_granted('ROLE_ADMIN')"),
  20.         new GetCollection(
  21.             uriTemplate'/metadata/sync',
  22.             controller SyncAction::class,
  23.             security   "is_granted('ROLE_ADMIN')",
  24.             deserializefalse,
  25.             validate   false,
  26.             serialize  false,
  27.             name       'sync'
  28.         ),
  29.         new GetCollection(
  30.             uriTemplate'/metadata',
  31.             filters    : ['metadata.search_filter'],
  32.         ),
  33.         new Get(
  34.             uriTemplate'/metadata/seo',
  35.             controller SeoAction::class,
  36.             read       false,
  37.             deserializefalse,
  38.         ),
  39.         new Get(),
  40.         new Put(security"is_granted('ROLE_ADMIN')"),
  41.     ],
  42.     normalizationContext  : ['groups' => ['metadata_read']],
  43.     denormalizationContext: ['groups' => ['metadata_write']],
  44. )]
  45. class Metadata
  46. {
  47.     use Identifiable;
  48.     use Timestampable;
  49.     /**
  50.      * @param Locale      $locale
  51.      * @param string      $url
  52.      * @param string      $name
  53.      * @param string|null $title
  54.      * @param string|null $description
  55.      * @param string|null $keywords
  56.      */
  57.     public function __construct(
  58.         public Locale $locale,
  59.         public string $url,
  60.         public string $name,
  61.         public ?string $title null,
  62.         public ?string $description null,
  63.         public ?string $keywords null,
  64.     ) {}
  65. }