Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Services/Servers/ReinstallServerService.php
10276 views
1
<?php
2
3
namespace Pterodactyl\Services\Servers;
4
5
use Pterodactyl\Models\Server;
6
use Illuminate\Database\ConnectionInterface;
7
use Pterodactyl\Repositories\Wings\DaemonServerRepository;
8
9
class ReinstallServerService
10
{
11
/**
12
* ReinstallService constructor.
13
*/
14
public function __construct(
15
private ConnectionInterface $connection,
16
private DaemonServerRepository $daemonServerRepository,
17
) {
18
}
19
20
/**
21
* Reinstall a server on the remote daemon.
22
*
23
* @throws \Throwable
24
*/
25
public function handle(Server $server): Server
26
{
27
return $this->connection->transaction(function () use ($server) {
28
$server->fill(['status' => Server::STATUS_INSTALLING])->save();
29
30
$this->daemonServerRepository->setServer($server)->reinstall();
31
32
return $server->refresh();
33
});
34
}
35
}
36
37