$uriVariables * @param array $context */ public function process(mixed $data, Operation $operation, array $uriVariables = [], array $context = []): FreemiumEvent { if ($operation instanceof Post) { $event = new Event(); } else { $event = $this->eventRepository->find($uriVariables['id']); } if ($operation instanceof Delete) { $this->entityManager->remove($event); $freemiumEvent = new FreemiumEvent(); } else { $this->eventMappingBuilder->mapInformations($event, $data); $this->entityManager->persist($event); $freemiumEvent = $data; } $this->entityManager->flush(); if ($operation instanceof Post) { $freemiumEvent->id = $event->getId(); } return $freemiumEvent; } }