From ac6cda92a5e3c538c6a02b3b932b5b278fc0aac4 Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap@edeveloper.nl>
Date: Fri, 13 Mar 2015 11:27:21 +0100
Subject: [PATCH] moved conditions and actions to managed entities

---
 CRM/Civirules/Upgrader.php                    |  8 ------
 CRM/CivirulesConditions/AgeComparison.mgd.php | 17 ++++++++++++
 .../BirthdayChanged.mgd.php                   | 17 ++++++++++++
 .../ContributionAmount.mgd.php                | 17 ++++++++++++
 .../ContributionFinancialType.mgd.php         | 17 ++++++++++++
 .../ContributionStatus.mgd.php                | 17 ++++++++++++
 .../FirstContribution.mgd.php                 | 17 ++++++++++++
 .../PrimaryEmailChanged.mgd.php               | 17 ++++++++++++
 api/v3/CiviRuleAction/Delete.php              | 26 +++++++++++++++++++
 api/v3/CiviRuleCondition/Delete.php           | 26 +++++++++++++++++++
 10 files changed, 171 insertions(+), 8 deletions(-)
 create mode 100644 CRM/CivirulesConditions/AgeComparison.mgd.php
 create mode 100644 CRM/CivirulesConditions/BirthdayChanged.mgd.php
 create mode 100644 CRM/CivirulesConditions/ContributionAmount.mgd.php
 create mode 100644 CRM/CivirulesConditions/ContributionFinancialType.mgd.php
 create mode 100644 CRM/CivirulesConditions/ContributionStatus.mgd.php
 create mode 100644 CRM/CivirulesConditions/FirstContribution.mgd.php
 create mode 100644 CRM/CivirulesConditions/PrimaryEmailChanged.mgd.php
 create mode 100644 api/v3/CiviRuleAction/Delete.php
 create mode 100644 api/v3/CiviRuleCondition/Delete.php

diff --git a/CRM/Civirules/Upgrader.php b/CRM/Civirules/Upgrader.php
index 51a6e22..e410315 100755
--- a/CRM/Civirules/Upgrader.php
+++ b/CRM/Civirules/Upgrader.php
@@ -19,14 +19,6 @@ class CRM_Civirules_Upgrader extends CRM_Civirules_Upgrader_Base {
     $this->executeSqlFile('sql/createCiviruleRuleAction.sql');
     $this->executeSqlFile('sql/createCiviruleRuleCondition.sql');
     $this->executeSqlFile('sql/createCiviruleRuleLog.sql');
-
-    $this->addCondition('CRM_CivirulesConditions_PrimaryEmailChanged', 'primary_email_changed', ts('Primary e-mail addres is changed'));
-    $this->addCondition('CRM_CivirulesConditions_AgeComparison', 'age_comparison', ts('Age comparison'));
-    $this->addCondition('CRM_CivirulesConditions_BirthdayChanged', 'birthday_changed', ts('Birthday changed'));
-    $this->addCondition('CRM_CivirulesConditions_FirstContribution', 'first_contribution_of_contact', ts('First Contribution of a Contact'));
-    $this->addCondition('CRM_CivirulesConditions_ContributionStatus', 'contribution_status', ts('Contribution status'));
-    $this->addCondition('CRM_CivirulesConditions_ContributionFinancialType', 'contribution_financial_type', ts('Contribution financial type'));
-    $this->addCondition('CRM_CivirulesConditions_ContributionAmount', 'contribution_total_amount', ts('Contribution total amount'));
   }
 
   protected function addCondition($class_name, $name, $label) {
diff --git a/CRM/CivirulesConditions/AgeComparison.mgd.php b/CRM/CivirulesConditions/AgeComparison.mgd.php
new file mode 100644
index 0000000..8cafd36
--- /dev/null
+++ b/CRM/CivirulesConditions/AgeComparison.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.AgeComparison',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'age_comparison',
+          'label' => 'Age comparison',
+          'class_name' => 'CRM_CivirulesConditions_AgeComparison',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/CRM/CivirulesConditions/BirthdayChanged.mgd.php b/CRM/CivirulesConditions/BirthdayChanged.mgd.php
new file mode 100644
index 0000000..b5d25d4
--- /dev/null
+++ b/CRM/CivirulesConditions/BirthdayChanged.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.BirthdayChanged',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'birthday_changed',
+          'label' => 'Birthday changed',
+          'class_name' => 'CRM_CivirulesConditions_BirthdayChanged',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/CRM/CivirulesConditions/ContributionAmount.mgd.php b/CRM/CivirulesConditions/ContributionAmount.mgd.php
new file mode 100644
index 0000000..84aca1c
--- /dev/null
+++ b/CRM/CivirulesConditions/ContributionAmount.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.ContributionAmount',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'contribution_total_amount',
+          'label' => 'Contribution total amount',
+          'class_name' => 'CRM_CivirulesConditions_ContributionAmount',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/CRM/CivirulesConditions/ContributionFinancialType.mgd.php b/CRM/CivirulesConditions/ContributionFinancialType.mgd.php
new file mode 100644
index 0000000..f402691
--- /dev/null
+++ b/CRM/CivirulesConditions/ContributionFinancialType.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.ContributionFinancialType',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'contribution_financial_type',
+          'label' => 'Birthday changed',
+          'class_name' => 'Contribution financial type',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/CRM/CivirulesConditions/ContributionStatus.mgd.php b/CRM/CivirulesConditions/ContributionStatus.mgd.php
new file mode 100644
index 0000000..ae89849
--- /dev/null
+++ b/CRM/CivirulesConditions/ContributionStatus.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.ContributionStatus',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'contribution_status',
+          'label' => 'Contribution status',
+          'class_name' => 'CRM_CivirulesConditions_ContributionStatus',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/CRM/CivirulesConditions/FirstContribution.mgd.php b/CRM/CivirulesConditions/FirstContribution.mgd.php
new file mode 100644
index 0000000..626c359
--- /dev/null
+++ b/CRM/CivirulesConditions/FirstContribution.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.FirstContribution',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'first_contribution_of_contact',
+          'label' => 'First Contribution of a Contact',
+          'class_name' => 'CRM_CivirulesConditions_FirstContribution',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/CRM/CivirulesConditions/PrimaryEmailChanged.mgd.php b/CRM/CivirulesConditions/PrimaryEmailChanged.mgd.php
new file mode 100644
index 0000000..f485ff6
--- /dev/null
+++ b/CRM/CivirulesConditions/PrimaryEmailChanged.mgd.php
@@ -0,0 +1,17 @@
+<?php
+
+return array (
+  0 =>
+    array (
+      'name' => 'Civirules:Condition.PrimaryEmailChanged',
+      'entity' => 'CiviRuleCondition',
+      'params' =>
+        array (
+          'version' => 3,
+          'name' => 'primary_email_changed',
+          'label' => 'Primary e-mail address is changed',
+          'class_name' => 'CRM_CivirulesConditions_PrimaryEmailChanged',
+          'is_active' => 1
+        ),
+    ),
+);
\ No newline at end of file
diff --git a/api/v3/CiviRuleAction/Delete.php b/api/v3/CiviRuleAction/Delete.php
new file mode 100644
index 0000000..6a0c37f
--- /dev/null
+++ b/api/v3/CiviRuleAction/Delete.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * CiviRuleAction.Create API specification (optional)
+ * This is used for documentation and validation.
+ *
+ * @param array $spec description of fields supported by this API call
+ * @return void
+ * @see http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards
+ */
+function _civicrm_api3_civi_rule_action_delete_spec(&$spec) {
+  $spec['id']['api_required'] = 0;
+}
+
+/**
+ * CiviRuleAction.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_action_delete($params) {
+  CRM_Civirules_BAO_Action::deleteWithId($params['id']);
+  $returnValues[$params['id']] = array();
+  return civicrm_api3_create_success($returnValues, $params, 'CiviRuleAction', 'Create');
+}
diff --git a/api/v3/CiviRuleCondition/Delete.php b/api/v3/CiviRuleCondition/Delete.php
new file mode 100644
index 0000000..cb4c7af
--- /dev/null
+++ b/api/v3/CiviRuleCondition/Delete.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * CiviRuleAction.Create API specification (optional)
+ * This is used for documentation and validation.
+ *
+ * @param array $spec description of fields supported by this API call
+ * @return void
+ * @see http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards
+ */
+function _civicrm_api3_civi_rule_condition_delete_spec(&$spec) {
+  $spec['id']['api_required'] = 0;
+}
+
+/**
+ * CiviRuleAction.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_condition_delete($params) {
+  CRM_Civirules_BAO_Condition::deleteWithId($params['id']);
+  $returnValues[$params['id']] = array();
+  return civicrm_api3_create_success($returnValues, $params, 'CiviRuleAction', 'Create');
+}
-- 
GitLab