}
/**
- * Save a new record into the database
- * @todo create a create function to do this work
- * @param $values
+ * Create or Update an SMS provider
+ * @param array $params
+ * @param array $ids to update
+ * @return array saved values
*/
- public static function saveRecord($values) {
- $values['domain_id'] = CRM_Utils_Array::value('domain_id', $values, CRM_Core_Config::domainID());
- $dao = new CRM_SMS_DAO_Provider();
- $dao->copyValues($values);
- $dao->save();
- }
+ public static function create($params, $ids = array()) {
+ $id = CRM_Utils_Array::value('id', $ids, CRM_Utils_Array::value('id', $params));
- /**
- * Update an SMS provider in the database.
- * @todo combine with saveRecord in a create function
- * @param $values
- * @param int $providerId
- */
- public static function updateRecord($values, $providerId) {
- $dao = new CRM_SMS_DAO_Provider();
- $dao->id = $providerId;
- if ($dao->find(TRUE)) {
- $dao->copyValues($values);
- $dao->save();
+ if ($id) {
+ CRM_Utils_Hook::pre('edit', 'SmsProvider', $id, $params);
+ }
+ else {
+ CRM_Utils_Hook::pre('create', 'SmsProvider', NULL, $params);
+ }
+
+ $provider = new static();
+ if ($id) {
+ $provider->id = $id;
+ $provider->find(TRUE);
+ }
+ if ($id) {
+ $provider->domain_id = CRM_Utils_Array::value('domain_id', $params, $provider->domain_id);
+ }
+ else {
+ $provider->domain_id = CRM_Utils_Array::value('domain_id', $params, CRM_Core_Config::domainID());
+ }
+ $provider->copyValues($params);
+ $result = $provider->save();
+ if ($id) {
+ CRM_Utils_Hook::post('edit', 'SmsProvider', $provider->id, $provider);
+ }
+ else {
+ CRM_Utils_Hook::post('create', 'SmsProvider', NULL, $provider);
}
+ return $result;
}
/**
$recData['is_active'] = CRM_Utils_Array::value('is_active', $recData, 0);
$recData['is_default'] = CRM_Utils_Array::value('is_default', $recData, 0);
- if ($this->_action & CRM_Core_Action::UPDATE) {
- CRM_SMS_BAO_Provider::updateRecord($recData, $this->_id);
- }
- elseif ($this->_action & CRM_Core_Action::ADD) {
- CRM_SMS_BAO_Provider::saveRecord($recData);
+ if ($this->_action && (CRM_Core_Action::UPDATE || CRM_Core_Action::ADD)) {
+ if (!empty($this->_id)) {
+ $ids = array('id' => $this->_id);
+ }
+ else {
+ $ids = array();
+ }
+ CRM_SMS_BAO_Provider::create($recData, $ids);
}
}
'is_active' => 1,
'api_type' => 1,
);
- CRM_SMS_BAO_Provider::saveRecord($values);
+ CRM_SMS_BAO_Provider::create($values, array());
$provider = $this->callAPISuccess('SmsProvider', 'getsingle', array('title' => 'test SMS provider'));
$domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $provider['id'], 'domain_id');
$this->assertNull($domain_id);
$values2 = array('title' => 'Test SMS Provider2');
- CRM_SMS_BAO_Provider::updateRecord($values2, $provider['id']);
+ CRM_SMS_BAO_Provider::create($values2, array('id' => $provider['id']));
$provider = $this->callAPISuccess('SmsProvider', 'getsingle', array('id' => $provider['id']));
$this->assertEquals('Test SMS Provider2', $provider['title']);
$domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $provider['id'], 'domain_id');
'is_active' => 1,
'api_type' => 1,
);
- CRM_SMS_BAO_Provider::saveRecord($values);
+ CRM_SMS_BAO_Provider::create($values);
$provider = $this->callAPISuccess('SmsProvider', 'getsingle', array('title' => 'test SMS provider'));
$domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $provider['id'], 'domain_id');
$this->assertEquals(CRM_Core_Config::domainID(), $domain_id);