Lines 100.00% 8 / 8
Methods 100.00% 1 / 1
Classes 100.00% 1 / 1
Name Lines Methods CRAP
 __invoke 100.00% 8 / 8 100.00% 1 / 1 2
18class Switcher extends BaseController
19{
20    public const string COOKIE = 'locale';
21
22    public function __invoke(Request $request, string $locale): Response
23    {
24        // Only back to a page of this site
25        $referer = $request->headers->get('referer') ?? '';
26        $back = \str_starts_with($referer, $request->getSchemeAndHttpHost().'/')
27            ? $referer
28            : $this->generateUrl('app_default');
29
30        $response = $this->redirect($back);
31        $response->headers->setCookie(Cookie::create(self::COOKIE, $locale, new \DateTimeImmutable('+1 year'))
32            ->withSecure($request->isSecure()));
33
34        return $response;
35    }
36}