src/Domain/Entity/OwnershipRequest.php line 50

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\Post;
  8. use ApiPlatform\Metadata\Put;
  9. use App\Application\ApiResources\State\Processor\OwnershipRequest\OwnershipRequestCreateProcessor;
  10. use App\Application\Controller\Api\OwnershipRequest\GetAcceptAction;
  11. use App\Application\Controller\Api\OwnershipRequest\GetCollectionAction;
  12. use App\Application\Controller\Api\OwnershipRequest\GetRefuseAction;
  13. use App\Domain\Entity\Behavior\Identifiable;
  14. use Gedmo\Timestampable\Traits\TimestampableEntity;
  15. /**
  16.  * Class OwnershipRequest
  17.  * @package App\Domain\Entity
  18.  */
  19. #[ApiResource(
  20.     operations            : [
  21.         new Delete(security"is_granted('ROLE_ADMIN')"),
  22.         new Get(),
  23.         new Get(
  24.             uriTemplate'/ownership_requests/{uuid}/accept',
  25.             controller GetAcceptAction::class,
  26.             security   "is_granted('ROLE_ADMIN')",
  27.             name       'get_accept'
  28.         ),
  29.         new Get(
  30.             uriTemplate'/ownership_requests/{uuid}/refuse',
  31.             controller GetRefuseAction::class,
  32.             security   "is_granted('ROLE_ADMIN')",
  33.             name       'get_refuse'
  34.         ),
  35.         new GetCollection(
  36.             controller GetCollectionAction::class,
  37.             security   "is_granted('ROLE_ADMIN')"
  38.         ),
  39.         new Post(
  40.             processorOwnershipRequestCreateProcessor::class,
  41.         ),
  42.         new Put(security"is_granted('ROLE_ADMIN')")
  43.     ],
  44.     normalizationContext  : ['groups' => ['ownership_request_read']],
  45.     denormalizationContext: ['groups' => ['ownership_request_write']]
  46. )]
  47. class OwnershipRequest
  48. {
  49.     use Identifiable;
  50.     use TimestampableEntity;
  51.     public function __construct(
  52.         public Person $person,
  53.         public PointOfInterest $pointOfInterest,
  54.         public ?\DateTime $acceptedAt null,
  55.         public ?\DateTime $refusedAt null
  56.     ) {
  57.     }
  58. }