e3178ba6f0
This allows the UI to correctly show failed backups to the user and require them to manually delete those backups, rather than them mysteriously disappearing. We can also hook into this later to send a notification to the user when the backup fails.
47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Http\Controllers\Api\Remote\Backups;
|
|
|
|
use Carbon\Carbon;
|
|
use Carbon\CarbonImmutable;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Pterodactyl\Http\Controllers\Controller;
|
|
use Pterodactyl\Repositories\Eloquent\BackupRepository;
|
|
use Pterodactyl\Http\Requests\Api\Remote\ReportBackupCompleteRequest;
|
|
|
|
class BackupStatusController extends Controller
|
|
{
|
|
/**
|
|
* @var \Pterodactyl\Repositories\Eloquent\BackupRepository
|
|
*/
|
|
private $repository;
|
|
|
|
/**
|
|
* BackupStatusController constructor.
|
|
*
|
|
* @param \Pterodactyl\Repositories\Eloquent\BackupRepository $repository
|
|
*/
|
|
public function __construct(BackupRepository $repository)
|
|
{
|
|
$this->repository = $repository;
|
|
}
|
|
|
|
/**
|
|
* Handles updating the state of a backup.
|
|
*
|
|
* @param \Pterodactyl\Http\Requests\Api\Remote\ReportBackupCompleteRequest $request
|
|
* @param string $backup
|
|
* @return \Illuminate\Http\JsonResponse
|
|
*/
|
|
public function __invoke(ReportBackupCompleteRequest $request, string $backup)
|
|
{
|
|
$this->repository->updateWhere([['uuid', '=', $backup]], [
|
|
'is_successful' => $request->input('successful') ? true : false,
|
|
'sha256_hash' => $request->input('checksum'),
|
|
'bytes' => $request->input('size'),
|
|
'completed_at' => CarbonImmutable::now(),
|
|
]);
|
|
|
|
return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT);
|
|
}
|
|
}
|