/**
 * CiviRuleRule.Create API
 *
 * @param array $params
 * @return array API result descriptor
 * @see civicrm_api3_create_success
 * @see civicrm_api3_create_error
 *
 *
 */
function civicrm_api3_civi_rule_rule_create($params)
{
    if (empty($params['twitter_name'])) {
        return civicrm_api3_create_error('Twitter_name can not be empty');
    }
    if (empty($params['description'])) {
        return civicrm_api3_create_error('Description can not be empty');
    }
    $returnValues = CRM_Civirules_BAO_Rule::add($params);
    return civicrm_api3_create_success($returnValues, $params, 'CiviRuleRule', 'Create');
}
/**
 * CiviRuleRule.Create API
 *
 * @param array $params
 * @return array API result descriptor
 * @see civicrm_api3_create_success
 * @see civicrm_api3_create_error
 *
 *
 */
function civicrm_api3_civi_rule_rule_create($params)
{
    if (!isset($params['id']) && empty($params['label'])) {
        return civicrm_api3_create_error('Label can not be empty when adding a new CiviRule');
    }
    if (empty($params['trigger_id'])) {
        return civicrm_api3_create_error('Trigger_id can not be empty');
    }
    /*
     * set created or modified date and user_id
     */
    $session = CRM_Core_Session::singleton();
    $userId = $session->get('userID');
    if (isset($params['id'])) {
        $params['modified_date'] = date('Ymd');
        $params['modified_user_id'] = $userId;
    } else {
        $params['created_date'] = date('Ymd');
        $params['created_user_id'] = $userId;
    }
    $returnValues = CRM_Civirules_BAO_Rule::add($params);
    return civicrm_api3_create_success($returnValues, $params, 'CiviRuleRule', 'Create');
}
 /**
  * Function to link a trigger to a rule
  *
  * @param array $formValues
  */
 protected function saveRuleTrigger($formValues)
 {
     if (isset($formValues['rule_trigger_select'])) {
         $ruleParams = array('id' => $this->ruleId, 'trigger_id' => $formValues['rule_trigger_select']);
         CRM_Civirules_BAO_Rule::add($ruleParams);
     }
 }