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 / SwapExchange.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
SwapExchange.php
43 lines
1 <?php
2
3 namespace Money\Exchange;
4
5 use Exchanger\Exception\Exception as ExchangerException;
6 use Money\Currency;
7 use Money\CurrencyPair;
8 use Money\Exception\UnresolvableCurrencyPairException;
9 use Money\Exchange;
10 use Swap\Swap;
11
12 /**
13 * Provides a way to get exchange rate from a third-party source and return a currency pair.
14 *
15 * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
16 */
17 final class SwapExchange implements Exchange
18 {
19 /**
20 * @var Swap
21 */
22 private $swap;
23
24 public function __construct(Swap $swap)
25 {
26 $this->swap = $swap;
27 }
28
29 /**
30 * {@inheritdoc}
31 */
32 public function quote(Currency $baseCurrency, Currency $counterCurrency)
33 {
34 try {
35 $rate = $this->swap->latest($baseCurrency->getCode().'/'.$counterCurrency->getCode());
36 } catch (ExchangerException $e) {
37 throw UnresolvableCurrencyPairException::createFromCurrencies($baseCurrency, $counterCurrency);
38 }
39
40 return new CurrencyPair($baseCurrency, $counterCurrency, $rate->getValue());
41 }
42 }
43