countryCompareController = $countryCompareController; } public function compare(Request $request) { $codes = $request->input("codes"); $countries = $request->input("countries"); $online = $request->input("online"); Log::info("{codes} {countries}", ["codes" => $codes, "countries" => $countries, "online" => $online]); $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; else $aCodes = $codes->map(function ($code) { return $code; }); if ($online == true) { Log::info("ONLINE {codes} {countries}", ["codes" => $codes, "countries" => $countries, "online" => $online]); $products = $this->countryCompareController->compare($countries, $cHash, $aCodes); } else { $products = IkeaProducts::whereIn("code", $aCodes); if (count($countries)) $products->whereIn("country", $countries); $products = $products->get(); } $products = $products->map(function ($product) use ($cHash) { $product["countryName"] = $cHash[$product["country"]]; return $product; }); Log::info("{products}", ["products" => $products]); return [ 'products' => $products, 'countryHash' => $cHash, ]; } }