deblan.io-murph/src/Controller/StlMeshController.php
2021-07-09 23:42:38 +02:00

52 lines
1.4 KiB
PHP

<?php
namespace App\Controller;
use App\Api\TTRssClient;
use App\Core\Controller\Site\PageController;
use App\Markdown\Parser\Post as PostParser;
use Symfony\Component\HttpFoundation\Response;
use App\Repository\StlMeshRepositoryQuery;
use App\Entity\StlMesh;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\Routing\Annotation\Route;
class StlMeshController extends PageController
{
public function meshes(StlMeshRepositoryQuery $query): Response
{
$pager = $query->create()
->orderBy('.sortOrder')
->paginate(1, 200);
return $this->defaultRender($this->siteRequest->getPage()->getTemplate(), [
'pager' => $pager,
]);
}
/**
* @Route("/mesh/download/{stlMesh}", name="mesh_download")
*/
public function download(StlMesh $stlMesh): Response
{
$response = new BinaryFileResponse($stlMesh->getFile());
$response->setContentDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
str_replace('.bin', '.stl', basename($stlMesh->getFile()))
);
return $response;
}
/**
* @Route("/mesh/viewer/{stlMesh}", name="mesh_viewer")
*/
public function viewer(StlMesh $stlMesh): Response
{
return $this->render('page/mesh/viewer.html.twig', [
'mesh' => $stlMesh,
]);
}
}