62 lines
2.0 KiB
PHP
Executable File
62 lines
2.0 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace MauticPlugin\GrapesJsBuilderBundle\Controller;
|
|
|
|
use Mautic\CoreBundle\Controller\AjaxController;
|
|
use Mautic\CoreBundle\Exception\FileUploadException;
|
|
use MauticPlugin\GrapesJsBuilderBundle\Helper\FileManager;
|
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class FileManagerController extends AjaxController
|
|
{
|
|
private const DEFAULT_PAGE = 1;
|
|
private const DEFAULT_LIMIT = 20;
|
|
|
|
public function uploadAction(Request $request, FileManager $fileManager): Response
|
|
{
|
|
try {
|
|
$response = $this->sendJsonResponse(['data'=> $fileManager->uploadFiles($request)]);
|
|
} catch (FileUploadException $error) {
|
|
return new Response($error->getMessage(), Response::HTTP_BAD_REQUEST);
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
|
|
public function deleteAction(Request $request, FileManager $fileManager): JsonResponse
|
|
{
|
|
$fileName = basename($request->get('filename'));
|
|
$filePath = $fileManager->getCompleteFilePath($fileName);
|
|
|
|
if (!file_exists($filePath) || !exif_imagetype($filePath)) {
|
|
return $this->sendJsonResponse(['success'=> false]);
|
|
}
|
|
|
|
$fileManager->deleteFile($fileName);
|
|
|
|
return $this->sendJsonResponse(['success'=> true]);
|
|
}
|
|
|
|
/**
|
|
* @deprecated since Mautic 5.2, to be removed in 6.0. Use FileManagerController::getMediaAction instead
|
|
*/
|
|
public function assetsAction(FileManager $fileManager): JsonResponse
|
|
{
|
|
return $this->sendJsonResponse([
|
|
'data' => $fileManager->getImages(),
|
|
]);
|
|
}
|
|
|
|
public function getMediaAction(Request $request, FileManager $fileManager): JsonResponse
|
|
{
|
|
$page = $request->query->getInt('page', self::DEFAULT_PAGE);
|
|
$limit = $request->query->getInt('limit', self::DEFAULT_LIMIT);
|
|
|
|
return $this->sendJsonResponse($fileManager->getMediaFiles($page, $limit));
|
|
}
|
|
}
|