Open Monograph Press  3.3.0
ExchangerExchange.php
1 <?php
2 
3 namespace Money\Exchange;
4 
5 use Exchanger\CurrencyPair as ExchangerCurrencyPair;
6 use Exchanger\Contract\ExchangeRateProvider;
7 use Exchanger\Exception\Exception as ExchangerException;
8 use Exchanger\ExchangeRateQuery;
12 use Money\Exchange;
13 
19 final class ExchangerExchange implements Exchange
20 {
24  private $exchanger;
25 
29  public function __construct(ExchangeRateProvider $exchanger)
30  {
31  $this->exchanger = $exchanger;
32  }
33 
37  public function quote(Currency $baseCurrency, Currency $counterCurrency)
38  {
39  try {
40  $query = new ExchangeRateQuery(
41  new ExchangerCurrencyPair($baseCurrency->getCode(), $counterCurrency->getCode())
42  );
43  $rate = $this->exchanger->getExchangeRate($query);
44  } catch (ExchangerException $e) {
45  throw UnresolvableCurrencyPairException::createFromCurrencies($baseCurrency, $counterCurrency);
46  }
47 
48  return new CurrencyPair($baseCurrency, $counterCurrency, $rate->getValue());
49  }
50 }
Money\Exception\UnresolvableCurrencyPairException
Definition: UnresolvableCurrencyPairException.php:13
Money\Exchange\ExchangerExchange
Definition: ExchangerExchange.php:19
Money\CurrencyPair
Definition: CurrencyPair.php:12
Money\Exchange\ExchangerExchange\quote
quote(Currency $baseCurrency, Currency $counterCurrency)
Definition: ExchangerExchange.php:40
Money\Exchange
Definition: Exchange.php:12
Money\Currency
Definition: vendor/moneyphp/money/src/Currency.php:14
Money\Currency\getCode
getCode()
Definition: vendor/moneyphp/money/src/Currency.php:47
Money\Exchange\ExchangerExchange\__construct
__construct(ExchangeRateProvider $exchanger)
Definition: ExchangerExchange.php:32
Money\Exchange
Definition: ExchangerExchange.php:3
Money\Exception\UnresolvableCurrencyPairException\createFromCurrencies
static createFromCurrencies(Currency $baseCurrency, Currency $counterCurrency)
Definition: UnresolvableCurrencyPairException.php:23