List of all the books added as a separate page.

This commit is contained in:
krzysiej
2022-06-08 15:03:55 +02:00
parent b1fa15b6f4
commit 20e450f868
6 changed files with 58 additions and 17 deletions

View File

@@ -3,12 +3,11 @@
namespace App\Controller;
use App\Entity\Book;
use App\Entity\File;
use App\Form\BookType;
use App\Form\FileType;
use App\Form\SearchType;
use App\Repository\BookRepository;
use App\Service\ProgressService;
use App\Service\FileService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\JsonResponse;
@@ -29,7 +28,7 @@ class BookController extends AbstractController
}
#[Route('/new', name: 'app_book_new', methods: ['GET', 'POST'])]
public function new(Request $request, BookRepository $bookRepository, ProgressService $fileService): Response
public function new(Request $request, BookRepository $bookRepository, FileService $fileService): Response
{
$book = new Book();
$form = $this->createForm(BookType::class, $book);
@@ -95,7 +94,7 @@ class BookController extends AbstractController
public function show(
Book $book,
Request $request,
ProgressService $fileService
FileService $fileService
): Response {
$fileForm = $this->createForm(FileType::class);
$fileForm->handleRequest($request);
@@ -124,7 +123,7 @@ class BookController extends AbstractController
Request $request,
Book $book,
BookRepository $bookRepository,
ProgressService $fileService
FileService $fileService
): Response {
$form = $this->createForm(BookType::class, $book);
$form->handleRequest($request);
@@ -162,7 +161,7 @@ class BookController extends AbstractController
Request $request,
Book $book,
BookRepository $bookRepository,
ProgressService $fileService
FileService $fileService
): Response {
if ($this->isCsrfTokenValid('delete' . $book->getId(), $request->request->get('_token'))) {
$fileService->removeFiles($book->getFiles());

View File

@@ -2,25 +2,49 @@
namespace App\Controller;
use App\Entity\Book;
use App\Entity\File;
use App\Repository\FileRepository;
use App\Service\FileService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
#[Route('/file')]
class FileController extends AbstractController
{
#[Route('/file', name: 'app_file')]
public function index(): Response
#[Route('/', name: 'app_file_index')]
public function index(FileRepository $fileRepository): Response
{
return $this->render('file/index.html.twig', [
'controller_name' => 'FileController',
'files' => $fileRepository->findAll()
]);
}
#[Route('/file/delete/{id}', name: 'app_file_delete')]
#[Route('/all', name: 'app_file_all', methods: ['GET'])]
public function files(FileRepository $fileRepository): JsonResponse
{
return $this->json($fileRepository->findAll(), context: [
AbstractNormalizer::ATTRIBUTES => [
'id',
'fileName',
'fileSize',
'extension',
'type',
'book' => [
'id',
'title',
'author'
]
]
]);
}
#[Route('/delete/{id}', name: 'app_file_delete')]
public function delete(
Request $request,
FileRepository $fileRepository,
@@ -32,7 +56,7 @@ class FileController extends AbstractController
return $this->redirect($request->headers->get('referer'));
}
#[Route('/file/{id}', name: 'app_file_download', methods: ['GET'])]
#[Route('/{id}', name: 'app_file_download', methods: ['GET'])]
public function get(File $file, FileService $fileService)
{
return $this->file($fileService->getFilePath($file), $file->getFileName());