<?php
namespace App\Controller\FrontendBundle\RookieDay;
use Doctrine\DBAL\Connection;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Query;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use App\BackendBundle\Helper\SiteTitleHelper;
use App\BackendBundle\Helper\RookieDayHelper;
use App\Entity\RookieDayCompany;
use App\Entity\RookieDayDate;
use App\Entity\RookieDaySchool;
class CompaniesController extends AbstractController {
private Connection $connection;
private EntityManagerInterface $em;
private SiteTitleHelper $siteTitleHelper;
private RookieDayHelper $rookieDayHelper;
public function __construct(EntityManagerInterface $em, SiteTitleHelper $sitetitlehelper, RookieDayHelper $rookieDayHelper) {
$this->em = $em;
$this->connection = $this->em->getConnection();
$this->siteTitleHelper = $sitetitlehelper;
$this->rookieDayHelper = $rookieDayHelper;
}
/**
* @return \Symfony\Component\HttpFoundation\Response
* @Route("/rookieday/unternehmen", name="rookie_day_companies", defaults={"title": "Unternehmensübersicht", "description": "Entdecke zusammen mit Rookie Day Unternehmen!"})
*/
public function companiesAction(Request $request) {
$this->siteTitleHelper->setSpeedDatingJobDescription($request);
$schools = $this->rookieDayHelper->getSchools();
return $this->render('@frontend/rookieday/companies.html.twig', array(
'schools' => $schools
));
}
/**
* @return \Symfony\Component\HttpFoundation\Response
* @Route("/rookieday/unternehmen-liste", name="rookie_day_company_list", defaults={"title": "", "description": ""})
*/
public function companyListAction(Request $request) {
$data = array();
$data['status'] = 'error';
$schoolID = intval($request->get('schoolID'));
if (empty($schoolID)) {
$data['message'] = "Error schoolid $schoolID";
return new JsonResponse($data);
}
$data['status'] = 'ok';
$data['html'] = $this->getHtmlCompanies($schoolID);
return new JsonResponse($data);
}
private function getHtmlCompanies($schoolID) {
/* @var $rookieDaySchool RookieDaySchool */
$rookieDaySchool = $this->rookieDayHelper->getSchoolByID($schoolID);
if (empty($rookieDaySchool)) {
return "";
}
$companies = $this->rookieDayHelper->getCompaniesBySchool($rookieDaySchool);
return $this->renderView('@frontend/templates/rookieday/company_items.html.twig', array('companies' => $companies));
}
}