diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php index d6bbfe168..b501e7c76 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php @@ -1,9 +1,9 @@ value('visiosoft.module.advs::free_currencyconverterapi_key'); - $response = $client->get('http://free.currencyconverterapi.com/api/v6/convert?q=' - . $url . '&compact=y&apiKey=' . $freeCurrencyKey); + + $client = new \GuzzleHttp\Client(); + $response = $client->request('GET', 'http://free.currencyconverterapi.com/api/v6/convert', ['query' => [ + 'q' => $url, + 'compact' => 'y', + 'apiKey' => $freeCurrencyKey + ]]); + if ($response->getStatusCode() == '200') { $response = (array)\GuzzleHttp\json_decode($response->getBody()->getContents()); if (!empty($response)) { @@ -132,8 +137,11 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface $foreign_currency[$currencyIn] = $price * $rate; } } - } catch (\Exception $e) { - $this->messages->error((!is_null($e->getMessage())) ? $e->getMessage() : trans('streams::error.500.message')); + } catch (\GuzzleHttp\Exception\ClientException $e) { + $response = $e->getResponse(); + $responseBodyAsString = $response->getBody()->getContents(); + $response = json_decode($responseBodyAsString, true); + $messages->error($response['error']); } } } diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index b39827ea4..0970d1336 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -102,20 +102,26 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface if (!empty($param['user'])) { $query = $query->where('advs_advs.created_by_id', $param['user']); } + $currency = setting_value('streams::currency'); + if (!empty($param['currency'])) { - if (!empty($param['min_price'])) { - $num = $param['min_price']; - $int = (int)$num; - $column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') >=" . $int; - $query = $query->whereRaw($column); - } - if (!empty($param['max_price'])) { - $num = $param['max_price']; - $int = (int)$num; - $column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') <=" . $int; - $query = $query->whereRaw($column); - } + $currency = $param['currency']; } + + if (!empty($param['min_price'])) { + $num = $param['min_price']; + $int = (int)$num; + $column = "JSON_EXTRACT(foreign_currencies, '$." . $currency . "') >= " . $int; + $query = $query->whereRaw($column); + } + + if (!empty($param['max_price'])) { + $num = $param['max_price']; + $int = (int)$num; + $column = "JSON_EXTRACT(foreign_currencies, '$." . $currency . "') <= " . $int; + $query = $query->whereRaw($column); + } + if (!empty($param['date'])) { if ($param['date'] === 'day') { $query = $query->where('advs_advs.publish_at', '>=', Carbon::now()->subDay()); diff --git a/addons/default/visiosoft/advs-module/src/Adv/Table/Handler/ConvertCurrency.php b/addons/default/visiosoft/advs-module/src/Adv/Table/Handler/ConvertCurrency.php index 6c0e47ff3..c9fc56ce5 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Table/Handler/ConvertCurrency.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Table/Handler/ConvertCurrency.php @@ -13,7 +13,9 @@ class ConvertCurrency extends ActionHandler foreach ($selected as $id) { $entry = $model->newQuery()->find($id); - $model->foreignCurrency($entry->currency, $entry->price, $id, $settingRepository); + if ($entry) { + $model->foreignCurrency($entry->currency, $entry->price, $id, $settingRepository); + } } if ($selected) { $this->messages->success(trans('visiosoft.module.advs::message.currency_converted'));