clients as $clientEntity) { /** @var Client $client */ $client = $clientEntity->getEntity(); if (!$client->getIp()) { throw new BadRequestHttpException('IP is required'); } if ($client->getStatus() === ClientStatus::OFF || $client->getStatus() === ClientStatus::TURNING_OFF || $client->getStatus() === ClientStatus::DISCONNECTED) { continue; } $data = [ 'nfn' => 'Apagar', 'ids' => '0' ]; $response = $this->createRequest( method: 'POST', url: 'https://'.$client->getIp().':8000/opengnsys/Apagar', params: [ 'json' => $data, ], token: $client->getToken(), ); if (isset($response['error']) && $response['code'] === Response::HTTP_INTERNAL_SERVER_ERROR) { $this->logger->error('Error powering off client', ['client' => $client->getId(), 'error' => $response['error']]); if ($input->queue) { $this->createService->__invoke($client, CommandTypes::SHUTDOWN, TraceStatus::PENDING, null, []); continue; } continue; } $this->logger->info('Powering off client', ['client' => $client->getId()]); $jobId = $response['job_id']; $client->setStatus(ClientStatus::TURNING_OFF); $this->entityManager->persist($client); $this->entityManager->flush(); $this->createService->__invoke($client, CommandTypes::SHUTDOWN, TraceStatus::SUCCESS, $jobId, []); } return new JsonResponse(data: [], status: Response::HTTP_OK); } }