mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
auto currency converter
This commit is contained in:
parent
e1d1d75bc8
commit
321578b2c9
@ -0,0 +1,50 @@
|
||||
<?php namespace Visiosoft\AdvsModule\Adv\Command;
|
||||
|
||||
use Anomaly\Streams\Platform\Message\MessageBag;
|
||||
|
||||
class ConvertCurrency
|
||||
{
|
||||
protected $price;
|
||||
protected $currency;
|
||||
protected $source;
|
||||
protected $to;
|
||||
|
||||
public function __construct($price, $source, $to)
|
||||
{
|
||||
$this->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,
|
||||
];
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user