getExchangeRate($fromCurrency, $toCurrency, $date); $amount = null; if (is_null($rate->id)) { $preferred = env('EXCHANGE_RATE_SERVICE', config('firefly.preferred_exchange_service')); $class = config('firefly.currency_exchange_services.' . $preferred); /** @var ExchangeRateInterface $object */ $object = app($class); $object->setUser(auth()->user()); $rate = $object->getRate($fromCurrency, $toCurrency, $date); } $return = $rate->toArray(); $return['amount'] = null; if (!is_null($request->get('amount'))) { // assume amount is in "from" currency: $return['amount'] = bcmul($request->get('amount'), strval($rate->rate)); } return Response::json($return); } }