<?php
namespace App\Controller;
use App\Entity\Category;
use App\Entity\Creation;
use App\Entity\Layer;
use App\Entity\Race;
use App\Entity\Text;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class LandingPageController extends \Symfony\Bundle\FrameworkBundle\Controller\AbstractController
{
#[Route(path: '/')]
public function landingPage(ManagerRegistry $managerRegistry)
{
$creations = [];
if($this->getUser()) {
$creations = $managerRegistry->getRepository(Creation::class)->findBy([
'user' => $this->getUser()
]);
}
return $this->render('index/index.html.twig', [
'categories' => $managerRegistry->getRepository(Category::class)->findBy([], ['ordering' => 'ASC']),
'layers' => $managerRegistry->getRepository(Layer::class)->findAll(),
'races' => $managerRegistry->getRepository(Race::class)->findAll(),
'canvasTexts' => $managerRegistry->getRepository(Text::class)->findAll(),
'creations' => $creations,
]);
}
#[Route(path: '/loadCreation/{id}')]
public function loadCreation(ManagerRegistry $managerRegistry, $id): JsonResponse
{
return new JsonResponse($managerRegistry->getRepository(Creation::class)->find($id), 200);
}
#[Route(path: '/saveCreation/')]
public function saveCreation(Request $request, ManagerRegistry $managerRegistry, ): JsonResponse
{
$layers = $request->request->get('layers');
$raceId = $request->request->get('raceId');
$race = $managerRegistry->getRepository(Race::class)->find($raceId);
$creation = null;
if($race) {
$creation = new Creation();
$creation->setUser($this->getUser());
$creation->setLayers($layers);
$creation->setRace($race);
$creation->setName(date('Y-m-d H:i'));
$managerRegistry->getManager()->persist($creation);
$managerRegistry->getManager()->flush();
}
return new JsonResponse($creation);
}
}