27 lines
853 B
PHP
27 lines
853 B
PHP
<?php
|
|
|
|
namespace Krzysiej\RyobiCrawler\Controller;
|
|
|
|
use Krzysiej\RyobiCrawler\Models\Product;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\Routing\Attribute\Route;
|
|
|
|
final class StarController extends BaseController
|
|
{
|
|
#[Route('/star/{productId<\d+>}', name: 'app_star')]
|
|
public function __invoke(int $productId, Request $request): Response
|
|
{
|
|
$referer = $request->headers->get('referer');
|
|
if (str_contains($referer, '/category/')) {
|
|
preg_match('#/category/(.*)#i', $referer, $matches);
|
|
}
|
|
if (str_contains($referer, '/search?search=')) {
|
|
preg_match('#/search\?search=(.*)#i', $referer, $matches);
|
|
}
|
|
|
|
Product::find($productId)->toggleStarred()->save();
|
|
return $this->redirect($referer);
|
|
}
|
|
}
|