eggConfigurationService = $eggConfigurationService; $this->repository = $repository; $this->configurationStructureService = $configurationStructureService; $this->nodeRepository = $nodeRepository; } /** * Returns details about the server that allows Wings to self-recover and ensure * that the state of the server matches the Panel at all times. * * @param \Illuminate\Http\Request $request * @param string $uuid * @return \Illuminate\Http\JsonResponse * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function __invoke(Request $request, $uuid) { $server = $this->repository->getByUuid($uuid); return JsonResponse::create([ 'settings' => $this->configurationStructureService->handle($server), 'process_configuration' => $this->eggConfigurationService->handle($server), ]); } /** * Lists all servers with their configurations that are assigned to the requesting node. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\JsonResponse * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function list(Request $request) { $authorization = substr($request->header('Authorization'), 7); $node = $this->nodeRepository->findFirstWhere([ 'daemonSecret' => $authorization ]); $servers = $this->repository->loadEveryServerForNode($node->id); $configurations = []; foreach ($servers as $server) { $configurations[$server->uuid] = [ 'settings' => $this->configurationStructureService->handle($server), 'process_configuration' => $this->eggConfigurationService->handle($server), ]; } return JsonResponse::create($configurations); } }