Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Repositories/Wings/DaemonPowerRepository.php
7460 views
1
<?php
2
3
namespace Pterodactyl\Repositories\Wings;
4
5
use Webmozart\Assert\Assert;
6
use Pterodactyl\Models\Server;
7
use Psr\Http\Message\ResponseInterface;
8
use GuzzleHttp\Exception\TransferException;
9
use Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException;
10
11
/**
12
* @method \Pterodactyl\Repositories\Wings\DaemonPowerRepository setNode(\Pterodactyl\Models\Node $node)
13
* @method \Pterodactyl\Repositories\Wings\DaemonPowerRepository setServer(\Pterodactyl\Models\Server $server)
14
*/
15
class DaemonPowerRepository extends DaemonRepository
16
{
17
/**
18
* Sends a power action to the server instance.
19
*
20
* @throws DaemonConnectionException
21
*/
22
public function send(string $action): ResponseInterface
23
{
24
Assert::isInstanceOf($this->server, Server::class);
25
26
try {
27
return $this->getHttpClient()->post(
28
sprintf('/api/servers/%s/power', $this->server->uuid),
29
['json' => ['action' => $action]]
30
);
31
} catch (TransferException $exception) {
32
throw new DaemonConnectionException($exception);
33
}
34
}
35
}
36
37