circleRequest = $circleRequest; $this->memberRequest = $memberRequest; $this->eventService = $eventService; $this->membershipService = $membershipService; } /** * @param FederatedEvent $event * * @throws FederatedItemBadRequestException */ public function verify(FederatedEvent $event): void { $circle = $event->getCircle(); if ($circle->isConfig(Circle::CFG_APP)) { throw new FederatedItemBadRequestException( StatusCode::$CIRCLE_DESTROY[120], 120 ); } $initiator = $circle->getInitiator(); $initiatorHelper = new MemberHelper($initiator); $initiatorHelper->mustBeOwner(); $event->setOutcome($this->serialize($circle)); } /** * @param FederatedEvent $event * * @throws RequestBuilderException */ public function manage(FederatedEvent $event): void { $circle = $event->getCircle(); $this->eventService->circleDestroying($event); $this->circleRequest->delete($circle); $this->memberRequest->deleteAllFromCircle($circle); $this->membershipService->onUpdate($circle->getSingleId()); } /** * @param FederatedEvent $event * @param array $results */ public function result(FederatedEvent $event, array $results): void { $this->eventService->circleDestroyed($event, $results); } }