/** * save one phone * - if $recordData['id'] is empty the phone gets added, otherwise it gets updated * * @param array $recordData an array of phone properties * @return array */ public function saveMyPhone($recordData) { $voipController = Phone_Controller_MyPhone::getInstance(); $phone = new Phone_Model_MyPhone(); $phone->setFromArray($recordData); $phoneSettings = new Voipmanager_Model_Snom_PhoneSettings(); $phoneSettings->setFromArray($recordData); $phone->settings = $phoneSettings; $phone->lines = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_Line', isset($recordData['lines']) && !empty($recordData['lines']) ? $recordData['lines'] : array(), TRUE); if (!empty($phone->id)) { $phone = $voipController->update($phone); } return $this->getMyPhone($phone->getId()); }
/** * save user phone * * @param array $recordData an array of phone properties * @return array */ public function saveMyPhone($recordData) { // close session to allow other requests Zend_Session::writeClose(true); unset($recordData['template_id']); $phone = new Phone_Model_MyPhone(); $phone->setFromArray($recordData); $phoneSettings = new Voipmanager_Model_Snom_PhoneSettings(); $phoneSettings->setFromArray($recordData); $phone->settings = $phoneSettings; $phone->lines = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_Line', isset($recordData['lines']) && !empty($recordData['lines']) ? $recordData['lines'] : array(), TRUE); if (!empty($phone->id)) { $phone = Phone_Controller_MyPhone::getInstance()->update($phone); } else { // will throw exception in any case $phone = Phone_Controller_MyPhone::getInstance()->create($phone); } return $this->getMyPhone($phone->getId()); }
/** * save one phone * - if $recordData['id'] is empty the phone gets added, otherwise it gets updated * * @param array $recordData an array of phone properties * @return array */ public function saveSnomPhone($recordData) { // unset if empty if (empty($recordData['id'])) { unset($recordData['id']); } // unset some (readonly-)fields $unsetFields = array('settings_loaded_at', 'firmware_checked_at', 'last_modified_time', 'ipaddress', 'current_software'); foreach ($unsetFields as $field) { unset($recordData[$field]); } //if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . print_r($recordData, true)); $phone = new Voipmanager_Model_Snom_Phone($recordData); $phoneSettings = new Voipmanager_Model_Snom_PhoneSettings(); $phoneSettings->setFromArray($recordData); $phone->lines = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_Line', isset($recordData['lines']) && !empty($recordData['lines']) ? $recordData['lines'] : array(), TRUE); $phone->rights = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', isset($recordData['rights']) && !empty($recordData['rights']) ? $recordData['rights'] : array()); $phone->settings = $phoneSettings; //if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . print_r($phoneSettings->toArray(), true)); if (empty($phone->id)) { $phone = Voipmanager_Controller_Snom_Phone::getInstance()->create($phone); } else { $phone = Voipmanager_Controller_Snom_Phone::getInstance()->update($phone); } $phone = $this->getSnomPhone($phone->getId()); return $phone; }