/** * @inheritdoc * @param Api_Model_Currency $model */ public function persist($model) { $data = ['iso' => $model->getIso(), 'title' => $model->getTitle(), 'rate' => $model->getRate()]; if ($model->getId()) { $data['last_updated_at'] = $model->getLastUpdatedAt() ? $model->getLastUpdatedAt()->format(DATE_W3C) : null; $criteria = ['id = ?' => (int) $model->getId()]; $this->_gateway->update($data, $criteria); } else { $this->_gateway->insert($data); $model->setId($this->_gateway->getAdapter()->lastInsertId()); } return $model; }
/** * 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; }