/** * Update currencies rate from the source * * @param Api_Model_Currency $currency * @return Api_Model_Currency */ public function updateRate(Api_Model_Currency $currency) { $rate = $this->_parser->getRate($currency->getIso(), $this->_sourceIso); $currency->setRate($rate); $currency->setLastUpdatedAt(new \DateTime()); $this->_repository->persist($currency); return $currency; }
/** * @param array $data * @return Api_Model_Currency * @throws Api_Exception_NoArgument */ private function _createModel(array $data = []) { if (empty($data['id'])) { throw (new Api_Exception_NoArgument())->setName('id'); } $currency = new Api_Model_Currency(isset($data['iso']) ? $data['iso'] : null, isset($data['title']) ? $data['title'] : null, isset($data['rate']) ? $data['rate'] : null); if (isset($data['last_updated_at']) && $data['last_updated_at'] != '0000-00-00 00:00:00') { $currency->setLastUpdatedAt(new \DateTime($data['last_updated_at'])); } if (isset($data['id'])) { $currency->setId((int) $data['id']); } return $currency; }