Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Repositories/Wings/DaemonTransferRepository.php
7460 views
1
<?php
2
3
namespace Pterodactyl\Repositories\Wings;
4
5
use Pterodactyl\Models\Node;
6
use Lcobucci\JWT\Token\Plain;
7
use GuzzleHttp\Exception\GuzzleException;
8
use Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException;
9
10
/**
11
* @method \Pterodactyl\Repositories\Wings\DaemonTransferRepository setNode(\Pterodactyl\Models\Node $node)
12
* @method \Pterodactyl\Repositories\Wings\DaemonTransferRepository setServer(\Pterodactyl\Models\Server $server)
13
*/
14
class DaemonTransferRepository extends DaemonRepository
15
{
16
/**
17
* @throws DaemonConnectionException
18
*/
19
public function notify(Node $targetNode, Plain $token): void
20
{
21
try {
22
$this->getHttpClient()->post(sprintf('/api/servers/%s/transfer', $this->server->uuid), [
23
'json' => [
24
'server_id' => $this->server->uuid,
25
'url' => $targetNode->getConnectionAddress() . '/api/transfers',
26
'token' => 'Bearer ' . $token->toString(),
27
'server' => [
28
'uuid' => $this->server->uuid,
29
'start_on_completion' => false,
30
],
31
],
32
]);
33
} catch (GuzzleException $exception) {
34
throw new DaemonConnectionException($exception);
35
}
36
}
37
}
38
39