Path: blob/1.0-develop/app/Services/Databases/Hosts/HostUpdateService.php
10263 views
<?php12namespace Pterodactyl\Services\Databases\Hosts;34use Pterodactyl\Models\DatabaseHost;5use Illuminate\Database\DatabaseManager;6use Illuminate\Database\ConnectionInterface;7use Illuminate\Contracts\Encryption\Encrypter;8use Pterodactyl\Extensions\DynamicDatabaseConnection;9use Pterodactyl\Contracts\Repository\DatabaseHostRepositoryInterface;1011class HostUpdateService12{13/**14* HostUpdateService constructor.15*/16public function __construct(17private ConnectionInterface $connection,18private DatabaseManager $databaseManager,19private DynamicDatabaseConnection $dynamic,20private Encrypter $encrypter,21private DatabaseHostRepositoryInterface $repository,22) {23}2425/**26* Update a database host and persist to the database.27*28* @throws \Throwable29*/30public function handle(int $hostId, array $data): DatabaseHost31{32if (!empty(array_get($data, 'password'))) {33$data['password'] = $this->encrypter->encrypt($data['password']);34} else {35unset($data['password']);36}3738return $this->connection->transaction(function () use ($data, $hostId) {39$host = $this->repository->update($hostId, $data);40$this->dynamic->set('dynamic', $host);41$this->databaseManager->connection('dynamic')->select('SELECT 1 FROM dual');4243return $host;44});45}46}474849