diff --git a/addons/default/visiosoft/advs-module/src/Adv/Command/ConvertCurrency.php b/addons/default/visiosoft/advs-module/src/Adv/Command/ConvertCurrency.php new file mode 100644 index 000000000..759b40e42 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Adv/Command/ConvertCurrency.php @@ -0,0 +1,50 @@ +price = $price; + $this->currency = $source; + $this->source = $source; + $this->to = $to; + } + + public function handle(MessageBag $message) + { + try { + $url = $this->source . "_" . $this->to; + $freeCurrencyKey = setting_value('visiosoft.module.advs::free_currencyconverterapi_key'); + + $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)) { + $rate = $response[$url]->val; + $this->price *= $rate; + $this->currency = $this->to; + } + } + } catch (\GuzzleHttp\Exception\ClientException $e) { + $message->error(['Para birimi dönüştürme işlemi tamamlanamadı!' . $e->getMessage()]); + } + + return [ + 'currency' => $this->currency, + 'price' => $this->price, + ]; + } +}