queue_manager = $queue_manager; $this->work_request_repository = $work_request_repository; $this->strategy_factory = $strategy_factory; } /** * @param MemberScheduleSummitActionSyncWorkRequest[] $requests * @return MemberScheduleSummitActionSyncWorkRequest[] */ function preProcessActions(array $requests){ foreach ($requests as $request){ $strategy = $this->strategy_factory->build($this->queue_manager, $request); if(is_null($strategy)) continue; $request = $strategy->process($request); if(!is_null($request)) $this->queue_manager->registerRequest($request); } foreach($this->queue_manager->getRequestsToDelete() as $request_2_delete){ $this->work_request_repository->delete($request_2_delete); } return $this->queue_manager->getPurgedRequests(); } }