<?php declare(strict_types=1);namespace App\Controller\Web;use App\Repository\RewardRepository;use FOS\RestBundle\Controller\Annotations as Rest;use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;use Swagger\Annotations as SWG;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use App\Helper\PimcoreCMSHelper;abstract class AbstractInformationController extends AbstractController{ /** * @var RewardRepository */ protected $rewardRepository; public function __construct(RewardRepository $rewardRepository) { $this->rewardRepository = $rewardRepository; } /** * @Rest\Get("/bonus-card") * @Cache(expires="tomorrow", public=true) * * @SWG\Response( * response=200, * description="Html content", * @SWG\Schema(type="array", items=@SWG\Items())) * * @return \Symfony\Component\HttpFoundation\Response */ public function bonusCardAction(RewardRepository $rewardRepository, PimcoreCMSHelper $pimcoreCMSHelper) { $html = 'web/information.d/bonus-card.html.twig'; switch (getenv('APP_COUNTRY')) { case 'hrv': $html = 'web/information.d/bonus-card.hr.html.twig'; break; case 'svn': $html = 'web/information.d/bonus-card.sl.html.twig'; break; case 'srb': $html = 'web/information.d/bonus-card.rs.html.twig'; break; case 'rks': $html = 'web/information.d/bonus-card.ks.html.twig'; break; case 'alb': $html = 'web/information.d/bonus-card.al.html.twig'; break; case 'grc': $html = 'web/information.d/bonus-card.el.html.twig'; break; case 'mkd': $html = 'web/information.d/bonus-card.mk.html.twig'; break; case 'mne': $html = 'web/information.d/bonus-card.me.html.twig'; break; default: $html = 'web/information.d/bonus-card.html.twig'; } // Fetch dynamic content from CMS $data = $pimcoreCMSHelper->fetchCMSContent(strtoupper(getenv('APP_COUNTRY'))); $rewards = $rewardRepository->findAll() ? ['rewards' => $rewardRepository->findAll()] : []; return $this->render( $html, array_merge($rewards, $data) ); } /** * @param Request $request * * @return \Symfony\Component\HttpFoundation\Response */ abstract public function impressumAction(Request $request); /** * @param Request $request * * @return \Symfony\Component\HttpFoundation\Response */ abstract public function developerAction(Request $request); /** * @param Request $request * * @return \Symfony\Component\HttpFoundation\Response */ abstract public function b2bAction(Request $request); protected function getLocaleFromRequest(Request $request){ $locale = $request->query->get('locale'); if(empty($locale)){ $locale=$request->getLocale(); } return $locale; }}