58 lines
1.6 KiB
PHP
58 lines
1.6 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 = [];
|
|
}
|
|
|
|
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
|
|
]);
|
|
}
|
|
}
|