public function FixerExchanger::getRemoteData in Commerce Exchanger 8
Fetch external data.
Parameters
string|null $base_currency: If we fetch data based on specific currency.
Overrides ExchangerProviderRemoteInterface::getRemoteData
File
- src/
Plugin/ Commerce/ ExchangerProvider/ FixerExchanger.php, line 31
Class
- FixerExchanger
- Provides the Fixer.io exchange rates.
Namespace
Drupal\commerce_exchanger\Plugin\Commerce\ExchangerProviderCode
public function getRemoteData($base_currency = NULL) {
$data = NULL;
$options = [
'query' => [
'access_key' => $this
->getApiKey(),
],
];
// Add base currency if we use enterprise model.
if (!empty($base_currency) && $this
->isEnterprise()) {
$options['query']['base'] = $base_currency;
}
$request = $this
->apiClient($options);
if ($request) {
$json = Json::decode($request);
if (!empty($json['success'])) {
// Leave base currency. In some cases we don't know base currency.
// Fixer.io on free plan uses your address for base currency, and in
// Drupal you could have different default value.
unset($json['timestamp'], $json['success'], $json['date']);
// This structure is what we need.
$data = $json;
}
}
return $data;
}