dev/core#2046 Rationalise add vs create on website BAO
authoreileen <emcnaughton@wikimedia.org>
Sat, 26 Sep 2020 03:24:51 +0000 (15:24 +1200)
committereileen <emcnaughton@wikimedia.org>
Sat, 26 Sep 2020 08:07:33 +0000 (20:07 +1200)
2 years ago we deprecated 'calling website create in weird ways' - it seems like now we can remove that
handling & standardise on recommended create function & deprecate add

https://lab.civicrm.org/dev/core/-/issues/2046

CRM/Core/BAO/Website.php
Civi/Api4/Generic/Traits/DAOActionTrait.php

index 358ddd2f3c2c001652836db90bd3e75775e3bd7e..d5f386e8fdb8d7eb9fc7501ec77a67f98093be36 100644 (file)
@@ -24,9 +24,11 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
    * Create or update Website record.
    *
    * @param array $params
+   *
    * @return CRM_Core_DAO_Website
+   * @throws \CRM_Core_Exception
    */
-  public static function add($params) {
+  public static function create($params) {
     return self::writeRecord($params);
   }
 
@@ -36,23 +38,13 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
    * If called in a legacy manner this, temporarily, fails back to calling the legacy function.
    *
    * @param array $params
-   * @param int $contactID
-   * @param bool $skipDelete
    *
    * @return bool|CRM_Core_BAO_Website
+   * @throws \CRM_Core_Exception
    */
-  public static function create($params, $contactID = NULL, $skipDelete = NULL) {
-    if ($skipDelete !== NULL || ($contactID && !is_array($contactID))) {
-      \Civi::log()->warning(ts('Calling website:create with vars other than $params is deprecated. Use process'), ['civi.tag' => 'deprecated']);
-      return self::process($params, $contactID, $skipDelete);
-    }
-    foreach ($params as $key => $value) {
-      if (is_numeric($key)) {
-        \Civi::log()->warning(ts('Calling website:create for multiple websites $params is deprecated. Use process'), ['civi.tag' => 'deprecated']);
-        return self::process($params, $contactID, $skipDelete);
-      }
-    }
-    return self::add($params);
+  public static function add($params) {
+    CRM_Core_Error::deprecatedFunctionWarning('use apiv4');
+    return self::create($params);
   }
 
   /**
@@ -65,6 +57,7 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
    * @param bool $skipDelete
    *
    * @return bool
+   * @throws \CRM_Core_Exception
    */
   public static function process($params, $contactID, $skipDelete) {
     if (empty($params)) {
@@ -87,7 +80,7 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
       }
       if (!empty($values['url'])) {
         $values['contact_id'] = $contactID;
-        self::add($values);
+        self::create($values);
       }
       elseif ($skipDelete && !empty($values['id'])) {
         self::del($values['id']);
index 9404b11ecf6fdd3b1f9126d848f658c74c8fa4a7..3982e4dba8d3bdc85f899acee03c0e48bdb7cf2e 100644 (file)
@@ -110,7 +110,6 @@ trait DAOActionTrait {
     $oddballs = [
       'EntityTag' => 'add',
       'GroupContact' => 'add',
-      'Website' => 'add',
     ];
     $method = $oddballs[$this->getEntityName()] ?? 'create';
     if (!method_exists($baoName, $method)) {