Remove legacy apiquery call from 'isContactInGroup'
authorEileen McNaughton <emcnaughton@wikimedia.org>
Wed, 27 Jul 2022 14:45:46 +0000 (15:45 +0100)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 2 Aug 2022 03:53:19 +0000 (15:53 +1200)
CRM/Contact/BAO/GroupContact.php
tests/phpunit/CRM/Contact/BAO/ContactTest.php

index ddae644d62858ca1693dd3fef3772239861673b4..8580a787d3c48a6130b4cd9f934c236033c24477 100644 (file)
@@ -9,6 +9,7 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Api4\Contact;
 use Civi\Api4\SubscriptionHistory;
 use Civi\Core\Event\PostEvent;
 use Civi\Core\HookInterface;
@@ -502,28 +503,19 @@ SELECT    *
   }
 
   /**
+   * Function that doesn't do much.
+   *
    * @param int $contactID
    * @param int $groupID
    *
+   * @deprecated
    * @return bool
    */
-  public static function isContactInGroup($contactID, $groupID) {
-    if (!CRM_Utils_Rule::positiveInteger($contactID) ||
-      !CRM_Utils_Rule::positiveInteger($groupID)
-    ) {
-      return FALSE;
-    }
-
-    $params = [
-      ['group', 'IN', [$groupID], 0, 0],
-      ['contact_id', '=', $contactID, 0, 0],
-    ];
-    [$contacts] = CRM_Contact_BAO_Query::apiQuery($params, ['contact_id']);
-
-    if (!empty($contacts)) {
-      return TRUE;
-    }
-    return FALSE;
+  public static function isContactInGroup(int $contactID, int $groupID) {
+    return (bool) Contact::get(FALSE)
+      ->addWhere('id', '=', $contactID)
+      ->addWhere('groups', 'IN', [$groupID])
+      ->selectRowCount()->execute()->count();
   }
 
   /**
index 021eb09094e4e4a65c188b1bad4427ead39c27d5..a5125814e9baff6773607abd59b5c66581be2133 100644 (file)
@@ -648,12 +648,12 @@ class CRM_Contact_BAO_ContactTest extends CiviUnitTestCase {
   /**
    * Test case for createProfileContact.
    */
-  public function testCreateProfileContact() {
+  public function testCreateProfileContact(): void {
     //Create 3 groups.
     foreach (['group1', 'group2', 'group3'] as $key => $title) {
       $this->groups["id{$key}"] = $this->callAPISuccess('Group', 'create', [
         'title' => $title,
-        'visibility' => "Public Pages",
+        'visibility' => 'Public Pages',
       ])['id'];
     }