app = $application; } /** * Set the server model this request is stemming from. * * @param \Pterodactyl\Models\Server $server * @return $this */ public function setServer(Server $server) { $this->server = $server; $this->setNode($this->server->node); return $this; } /** * Set the node model this request is stemming from. * * @param \Pterodactyl\Models\Node $node * @return $this */ public function setNode(Node $node) { $this->node = $node; return $this; } /** * Return an instance of the Guzzle HTTP Client to be used for requests. * * @param array $headers * @return \GuzzleHttp\Client */ public function getHttpClient(array $headers = []): Client { Assert::isInstanceOf(Node::class, $this->node); return new Client([ 'verify' => $this->app->environment('production'), 'base_uri' => $this->node->getConnectionAddress(), 'timeout' => config('pterodactyl.guzzle.timeout'), 'connect_timeout' => config('pterodactyl.guzzle.connect_timeout'), 'headers' => array_merge($headers, [ 'Authorization' => 'Bearer ' . $this->node->daemonSecret, 'Accept' => 'application/json', 'Content-Type' => 'application/json', ]), ]); } }