From 9351768b25b2c859ea849e6d4667dc792292cade Mon Sep 17 00:00:00 2001 From: naomi Date: Wed, 18 May 2022 13:54:06 +0100 Subject: [PATCH] Refactor --- modules/opencase_cases/opencase_cases.module | 20 -------------------- modules/opencase_cases/src/Entity/OCCase.php | 14 ++++++++++++-- opencase.module | 1 + 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/modules/opencase_cases/opencase_cases.module b/modules/opencase_cases/opencase_cases.module index f439526..1c6d72d 100644 --- a/modules/opencase_cases/opencase_cases.module +++ b/modules/opencase_cases/opencase_cases.module @@ -68,19 +68,6 @@ function opencase_cases_theme() { ]; } -/** - * @return Drupal\opencase_cases\entity\OCActivity[] - */ -function opencase_cases_get_activities(Drupal\opencase_cases\entity\OCCase $case): array { - $query = \Drupal::entityQuery('oc_activity') - ->condition('oc_case.target_id', $case->id()); - $activity_ids = $query->execute(); - $activities = []; - foreach($activity_ids as $id) { - $activities[] = Drupal\opencase_entities\Entity\OCActivity::load($id); - } - return $activities; -} function opencase_cases_oc_case_fee_update(Drupal\opencase_cases\entity\OCCaseFee $case_fee): void { $case = $case_fee->getCase(); @@ -119,13 +106,6 @@ function opencase_cases_entity_base_field_info($entity_type) { return $fields; } -// When deleting a case, delete the activities associated with it -function opencase_cases_oc_case_delete(Drupal\opencase_cases\Entity\OCCase $case): void { - $activities = opencase_cases_get_activities($case); - foreach ($activities as $activity) { - $activity->delete(); - } -} /** diff --git a/modules/opencase_cases/src/Entity/OCCase.php b/modules/opencase_cases/src/Entity/OCCase.php index 1786f96..dd7d468 100644 --- a/modules/opencase_cases/src/Entity/OCCase.php +++ b/modules/opencase_cases/src/Entity/OCCase.php @@ -92,11 +92,21 @@ class OCCase extends RevisionableContentEntityBase implements OCCaseInterface } public function deleteCaseProvisions(): void { - $query = \Drupal::entityQuery('oc_case_provision') + $this->deleteChildren('oc_case_provision'); + } + public function deleteActivities(): void { + $this->deleteChildren('oc_activity'); + } + + + public function deleteChildren($child_entity_type):void { + $query = \Drupal::entityQuery($child_entity_type) ->condition('oc_case.target_id', $this->id()); $ids = $query->execute(); foreach($ids as $id) { - OCcaseProvision::load($id)->delete(); + \Drupal::entityTypeManager() + ->getStorage($child_entity_type) + ->load($id)->delete(); } } diff --git a/opencase.module b/opencase.module index 030aa11..11c41a6 100644 --- a/opencase.module +++ b/opencase.module @@ -59,6 +59,7 @@ function opencase_oc_case_provision_update(OCCaseProvision $case_provision): voi function opencase_oc_case_delete(OCCase $case): void { $case->deleteCaseProvisions(); + $case->deleteActivities(); } /**