APIv4 - Drop support for deprecated join syntax
authorColeman Watts <coleman@civicrm.org>
Thu, 28 Jul 2022 18:08:07 +0000 (14:08 -0400)
committerColeman Watts <coleman@civicrm.org>
Fri, 29 Jul 2022 22:47:40 +0000 (18:47 -0400)
Civi/Api4/Service/Schema/SchemaMapBuilder.php
tests/phpunit/api/v4/Action/FkJoinTest.php

index d9baef14cd45dc57a13a4d6b76635fe8f9cd0000..a19c20a6920d2e06e05041e54ec18c54fd964fdd 100644 (file)
@@ -82,14 +82,6 @@ class SchemaMapBuilder {
     if ($fkClass) {
       $tableName = AllCoreTables::getTableForClass($fkClass);
       $fkKey = $data['FKKeyColumn'] ?? 'id';
-      // Backward-compatibility for older api calls using e.g. "contact" instead of "contact_id"
-      if (strpos($field, '_id')) {
-        $alias = str_replace('_id', '', $field);
-        $joinable = new Joinable($tableName, $fkKey, $alias);
-        $joinable->setJoinType($joinable::JOIN_TYPE_MANY_TO_ONE);
-        $joinable->setDeprecated();
-        $table->addTableLink($field, $joinable);
-      }
       $joinable = new Joinable($tableName, $fkKey, $field);
       $joinable->setJoinType($joinable::JOIN_TYPE_MANY_TO_ONE);
       $table->addTableLink($field, $joinable);
index 74a79473c5279deed64cab081a9bfbd0bcd0a09a..ef06a766ea5a35f9fe5f209d0ad4ab0659281654 100644 (file)
@@ -445,24 +445,6 @@ class FkJoinTest extends Api4TestBase implements TransactionalInterface {
     $this->assertEquals('TesterCo', $emailGet['contact_id.employer_id.display_name']);
   }
 
-  public function testDeprecatedJoins() {
-    $message = '';
-    try {
-      \Civi\Api4\Email::get(FALSE)
-        ->addWhere('contact.first_name', '=', 'Peter')
-        ->addWhere('contact.last_name', '=', '')
-        ->addWhere('contact.is_deleted', '=', 0)
-        ->addWhere('contact.is_deceased', '=', 0)
-        ->addWhere('email', '=', '')
-        ->addWhere('is_primary', '=', TRUE)
-        ->setSelect(['contact_id'])->execute();
-    }
-    catch (\Exception $e) {
-      $message = $e->getMessage();
-    }
-    $this->assertStringContainsString("Deprecated join alias 'contact' used in APIv4 get. Should be changed to 'contact_id'", $message);
-  }
-
   public function testJoinWithExpression() {
 
     $contact1 = $this->createTestRecord('Contact');