From 4a21520c453bf58d7bcac5fbf6a011cdd9e6a432 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 24 Jun 2021 21:38:56 -0400 Subject: [PATCH] APIv4 - Remove POC code from early alpha During early APIv4 development there was an idea to create a BridgeJoinable class and connect things like activity->assignees. It was experimentally implemented for that field one field, but never documented or tested. --- .../ActivitySchemaMapSubscriber.php | 50 ------------------- ...vityToActivityContactAssigneesJoinable.php | 50 ------------------- .../Schema/Joinable/BridgeJoinable.php | 33 ------------ Civi/Api4/Service/Schema/SchemaMap.php | 11 ---- 4 files changed, 144 deletions(-) delete mode 100644 Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php delete mode 100644 Civi/Api4/Service/Schema/Joinable/ActivityToActivityContactAssigneesJoinable.php delete mode 100644 Civi/Api4/Service/Schema/Joinable/BridgeJoinable.php diff --git a/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php b/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php deleted file mode 100644 index 22688380c4..0000000000 --- a/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php +++ /dev/null @@ -1,50 +0,0 @@ - 'onSchemaBuild', - ]; - } - - /** - * @param \Civi\Api4\Event\SchemaMapBuildEvent $event - */ - public function onSchemaBuild(SchemaMapBuildEvent $event) { - $schema = $event->getSchemaMap(); - $table = $schema->getTableByName('civicrm_activity'); - - $middleAlias = \CRM_Utils_String::createRandom(10, implode(range('a', 'z'))); - $middleLink = new ActivityToActivityContactAssigneesJoinable($middleAlias); - - $bridge = new BridgeJoinable('civicrm_contact', 'id', 'assignees', $middleLink); - $bridge->setBaseTable('civicrm_activity_contact'); - $bridge->setJoinType(Joinable::JOIN_TYPE_ONE_TO_MANY); - - $table->addTableLink('contact_id', $bridge); - } - -} diff --git a/Civi/Api4/Service/Schema/Joinable/ActivityToActivityContactAssigneesJoinable.php b/Civi/Api4/Service/Schema/Joinable/ActivityToActivityContactAssigneesJoinable.php deleted file mode 100644 index 17b3cf898d..0000000000 --- a/Civi/Api4/Service/Schema/Joinable/ActivityToActivityContactAssigneesJoinable.php +++ /dev/null @@ -1,50 +0,0 @@ -addCondition(sprintf('%s.record_type_id = (%s)', $alias, $subSelect)); - parent::__construct('civicrm_activity_contact', 'activity_id', $alias); - } - -} diff --git a/Civi/Api4/Service/Schema/Joinable/BridgeJoinable.php b/Civi/Api4/Service/Schema/Joinable/BridgeJoinable.php deleted file mode 100644 index a369da03f4..0000000000 --- a/Civi/Api4/Service/Schema/Joinable/BridgeJoinable.php +++ /dev/null @@ -1,33 +0,0 @@ -middleLink = $middleLink; - } - - /** - * @return Joinable - */ - public function getMiddleLink() { - return $this->middleLink; - } - -} diff --git a/Civi/Api4/Service/Schema/SchemaMap.php b/Civi/Api4/Service/Schema/SchemaMap.php index afbddb94f9..f063afda2e 100644 --- a/Civi/Api4/Service/Schema/SchemaMap.php +++ b/Civi/Api4/Service/Schema/SchemaMap.php @@ -12,8 +12,6 @@ namespace Civi\Api4\Service\Schema; -use Civi\Api4\Service\Schema\Joinable\BridgeJoinable; - class SchemaMap { const MAX_JOIN_DEPTH = 3; @@ -40,15 +38,6 @@ class SchemaMap { $this->findPaths($table, $targetTableAlias, 1, $path); - foreach ($path as $index => $pathLink) { - if ($pathLink instanceof BridgeJoinable) { - $start = array_slice($path, 0, $index); - $middle = [$pathLink->getMiddleLink()]; - $end = array_slice($path, $index, count($path) - $index); - $path = array_merge($start, $middle, $end); - } - } - return $path; } -- 2.25.1