wip: pauses downloads

This commit is contained in:
2025-06-09 11:26:17 -05:00
parent 51c2a1c577
commit a7bedae3db
18 changed files with 217 additions and 12 deletions

View File

@@ -3,8 +3,10 @@
namespace App\Download\Framework\Controller;
use App\Download\Action\Handler\DeleteDownloadHandler;
use App\Download\Action\Handler\PauseDownloadHandler;
use App\Download\Action\Input\DeleteDownloadInput;
use App\Download\Action\Input\DownloadMediaInput;
use App\Download\Action\Input\PauseDownloadInput;
use App\Download\Framework\Repository\DownloadRepository;
use App\Util\Broadcaster;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@@ -65,4 +67,18 @@ class ApiController extends AbstractController
return $this->json(['status' => 200, 'message' => 'Download Deleted']);
}
#[Route('/api/download/{downloadId}', name: 'api_download_pause', methods: ['PUT'])]
public function pauseDownload(
PauseDownloadInput $input,
PauseDownloadHandler $handler,
): Response {
$result = $handler->handle($input->toCommand());
$this->broadcaster->alert(
title: 'Success',
message: "{$result->download->getTitle()} has been Paused.",
);
return $this->json(['status' => 200, 'message' => 'Download Paused']);
}
}

View File

@@ -47,7 +47,7 @@ class DownloadRepository extends ServiceEntityRepository
->andWhere('d.user = :user')
->andWhere('(d.title LIKE :term OR d.filename LIKE :term OR d.imdbId LIKE :term OR d.status LIKE :term OR d.mediaType LIKE :term)')
->orderBy('d.id', 'ASC')
->setParameter('statuses', ['New', 'In Progress'])
->setParameter('statuses', ['New', 'In Progress', 'Paused'])
->setParameter('user', $user)
->setParameter('term', '%' . $term . '%')
->getQuery();