/** * Check if date criteria is matched. * * @param string $key Date criteria key. * @param RateInterface $rate Rate to check for match. * @param array $criteria Filter criterias. * @return bool TRUE if there is a match. */ private static function matchesDateCriteria($key, RateInterface $rate, array $criteria) { $date = self::extractDateCriteria($key, $criteria); if ($date === null) { return true; } if ($key === 'dateFrom') { return $date <= $rate->getDate(); } elseif ($key === 'dateTo') { return $date >= $rate->getDate(); } return $date->format('Y-m-d') === $rate->getDate()->format('Y-m-d'); }
/** * Build this rate instance from any RateInterface implementation. * * @param RateInterface $rate * @return Rate */ public static function fromRateInterface(RateInterface $rate) { return new static($rate->getSourceName(), $rate->getValue(), $rate->getCurrencyCode(), $rate->getRateType(), $rate->getDate(), $rate->getBaseCurrencyCode(), $rate->getCreatedAt(), $rate->getModifiedAt()); }
/** * Serialize rate to JSON string. * * @param RateInterface $rate Rate to serialize. * @return string JSON representation of rate. */ protected function toJson(RateInterface $rate) { return json_encode(array('sourceName' => $rate->getSourceName(), 'value' => $rate->getValue(), 'currencyCode' => $rate->getCurrencyCode(), 'rateType' => $rate->getRateType(), 'date' => $rate->getDate()->format('Y-m-d H:i:s'), 'baseCurrencyCode' => $rate->getBaseCurrencyCode(), 'createdAt' => $rate->getCreatedAt()->format('Y-m-d H:i:s'), 'modifiedAt' => $rate->getModifiedAt()->format('Y-m-d H:i:s'))); }