mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 04:04:45 +02:00

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.
48 lines
1.4 KiB
PHP
48 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);
|
|
}
|
|
}
|