Filer items that have currently the lowest price.
This commit was merged in pull request #39.
This commit is contained in:
29
src/Controller/LowestPriceController.php
Normal file
29
src/Controller/LowestPriceController.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Krzysiej\RyobiCrawler\Controller;
|
||||
|
||||
use Krzysiej\RyobiCrawler\Models\Product;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use function Symfony\Component\Clock\now;
|
||||
|
||||
final class LowestPriceController extends BaseController
|
||||
{
|
||||
#[Route('/lowest-price', name: 'app_lowest_price', methods: ['GET'])]
|
||||
public function __invoke(): Response
|
||||
{
|
||||
$listType = 'lowest_price';
|
||||
if($this->cache->getItem('lowest_price')->isHit()) {
|
||||
return $this->render('productList.html.twig', ['listType' => $listType]);
|
||||
}
|
||||
|
||||
$products = Product::whereRaw('priceCurrent = priceLowest')
|
||||
->whereRaw('lastSeen = "'.now()->format('Y-m-d').'"')
|
||||
->whereRaw('priceCurrent < productStandardPrice')
|
||||
->orderByDesc('starred')
|
||||
->orderByDesc('created_by')
|
||||
->with(['currentPrice', 'lowestPrice'])
|
||||
->get();
|
||||
return $this->render('productList.html.twig', ['products' => $products, 'listType' => $listType]);
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace Krzysiej\RyobiCrawler\Controller;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Krzysiej\RyobiCrawler\Models\Product;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace Krzysiej\RyobiCrawler\Controller;
|
||||
|
||||
use Krzysiej\RyobiCrawler\Models\Product;
|
||||
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Twig\Error\LoaderError;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace Krzysiej\RyobiCrawler\Controller;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Krzysiej\RyobiCrawler\Models\Product;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
Reference in New Issue
Block a user