repository = $repository; } /** * Handles updating the state of a backup. * * @param \Pterodactyl\Http\Requests\Api\Remote\ReportBackupCompleteRequest $request * @param string $backup * @return \Illuminate\Http\JsonResponse * * @throws \Pterodactyl\Exceptions\Model\DataValidationException * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function __invoke(ReportBackupCompleteRequest $request, string $backup) { /** @var \Pterodactyl\Models\Backup $backup */ $backup = $this->repository->findFirstWhere([['uuid', '=', $backup]]); if ($request->input('successful')) { $this->repository->update($backup->id, [ 'sha256_hash' => $request->input('checksum'), 'bytes' => $request->input('size'), 'completed_at' => Carbon::now(), ], true, true); } else { $this->repository->delete($backup->id); } return JsonResponse::create([], JsonResponse::HTTP_NO_CONTENT); } }