PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / moneyphp / money / src / Exchange / ExchangerExchange.php
ameliabooking / vendor / moneyphp / money / src / Exchange Last commit date
ExchangerExchange.php 2 years ago FixedExchange.php 2 years ago IndirectExchange.php 2 years ago ReversedCurrenciesExchange.php 2 years ago SwapExchange.php 2 years ago
ExchangerExchange.php
48 lines
1 <?php
2
3 namespace Money\Exchange;
4
5 use Exchanger\Contract\ExchangeRateProvider;
6 use Exchanger\CurrencyPair as ExchangerCurrencyPair;
7 use Exchanger\Exception\Exception as ExchangerException;
8 use Exchanger\ExchangeRateQuery;
9 use Money\Currency;
10 use Money\CurrencyPair;
11 use Money\Exception\UnresolvableCurrencyPairException;
12 use Money\Exchange;
13
14 /**
15 * Provides a way to get exchange rate from a third-party source and return a currency pair.
16 *
17 * @author Maksim (Ellrion) Platonov <ellrion11@gmail.com>
18 */
19 final class ExchangerExchange implements Exchange
20 {
21 /**
22 * @var ExchangeRateProvider
23 */
24 private $exchanger;
25
26 public function __construct(ExchangeRateProvider $exchanger)
27 {
28 $this->exchanger = $exchanger;
29 }
30
31 /**
32 * {@inheritdoc}
33 */
34 public function quote(Currency $baseCurrency, Currency $counterCurrency)
35 {
36 try {
37 $query = new ExchangeRateQuery(
38 new ExchangerCurrencyPair($baseCurrency->getCode(), $counterCurrency->getCode())
39 );
40 $rate = $this->exchanger->getExchangeRate($query);
41 } catch (ExchangerException $e) {
42 throw UnresolvableCurrencyPairException::createFromCurrencies($baseCurrency, $counterCurrency);
43 }
44
45 return new CurrencyPair($baseCurrency, $counterCurrency, $rate->getValue());
46 }
47 }
48