<?php
namespace App\Controller\Api;
use App\Service\PdfService;
use App\Service\UploadService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* Class PdfController
* @package App\Controller\Api
* @Route("/pdf-tool")
*/
class PdfController extends AbstractController
{
/**
* @param Request $request
* @param PdfService $pdfService
* @param UploadService $uploadService
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @Route("/merge/", name="pdf_merge", methods={"post"})
*/
public function pdfMerge(Request $request, PdfService $pdfService, UploadService $uploadService) {
$result = [
"url_file" => null
];
$localPdfDir = $this->getParameter("upload_pdf_dir");
if($request->isMethod("post")) {
$files = $request->files;
$pdfFiles = [];
if(!is_null($files) && sizeof($files) > 0) {
/** @var UploadedFile $file */
foreach ($files as $file) {
if($file->getMimeType() == "application/pdf") {
$pdfFiles[] = $uploadService->uploadFile($file, $localPdfDir);
}
}
if(!empty($pdfFiles)) {
$pdfMerged = $pdfService->pdfMerge($pdfFiles);
$result["url_file"] = $request->getSchemeAndHttpHost() . $pdfMerged;
}
}
}
return $this->json($result, Response::HTTP_OK);
}
}