Files
ikea/app/Http/Controllers/ProductsCompareController.php
Jaroslav Drzik e55e88fa62
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 10s
fix name of country
2023-12-26 16:03:10 +01:00

60 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\IkeaProducts;
use Illuminate\Http\Client\Pool;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use App\Models\CountryCode;
use App\Models\CurrencyRates;
use Inertia\Inertia;
class ProductsCompareController extends Controller
{
public function compare(Request $request)
{
$codes = $request->input("codes");
$countries = $request->input("countries");
Log::info("{codes} {countries}", ["codes" => $codes, "countries" => $countries]);
$codes = collect($codes);
$countries = collect($countries);
if ($countries != null && count($countries)) {
$hCountry = CountryCode::countryHash();
$countries = $countries->map(function ($country) use ($hCountry) {
return $hCountry[$country];
});
} else {
$countries = [];
}
$cHash = CountryCode::code_countryHash();
if (is_array($codes) == false)
$aCodes = [$codes['code']];
else
$aCodes = $codes->map(function ($code) {
return $code['code'];
});
$products = IkeaProducts::whereIn("code", $aCodes);
if (count($countries)) $products->whereIn("country",$countries);
$products = $products->get();
$currencyRates = CurrencyRates::rates2EUR("Y");
$products = $products->map(function ($product) use ($currencyRates) {
$product["salesPrice"] = round(floatval($product["salesPrice"]) / $currencyRates[$product["country"]], 2);
return $product;
});
Log::info("{products}", ["products" => $products]);
return Inertia::render('IkeaRoot', [
'products' => $products,
'countryHash' => $cHash,
]);
}
}