From 6ed2fd5d663f59d2e1a47cd31fa31831d9898472 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Thu, 11 Sep 2025 12:29:49 +0200 Subject: [PATCH] refactor(clone): integrate preview cloning logic directly into application cloning function for improved clarity and maintainability --- bootstrap/helpers/applications.php | 49 ++++++++++++++---------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/bootstrap/helpers/applications.php b/bootstrap/helpers/applications.php index 2ae641a2b..ca34875d8 100644 --- a/bootstrap/helpers/applications.php +++ b/bootstrap/helpers/applications.php @@ -238,7 +238,28 @@ function clone_application(Application $source, $destination, array $overrides = } // Clone previews with FQDN regeneration - clone_application_previews($source, $newApplication); + $applicationPreviews = $source->previews()->get(); + foreach ($applicationPreviews as $preview) { + $newPreview = $preview->replicate([ + 'id', + 'created_at', + 'updated_at', + ])->fill([ + 'uuid' => (string) new Cuid2, + 'application_id' => $newApplication->id, + 'status' => 'exited', + 'fqdn' => null, + 'docker_compose_domains' => null, + ]); + $newPreview->save(); + + // Regenerate FQDN for the cloned preview + if ($newApplication->build_pack === 'dockercompose') { + $newPreview->generate_preview_fqdn_compose(); + } else { + $newPreview->generate_preview_fqdn(); + } + } // Clone persistent volumes $persistentVolumes = $source->persistentStorages()->get(); @@ -312,29 +333,3 @@ function clone_application(Application $source, $destination, array $overrides = return $newApplication; } - -function clone_application_previews(Application $sourceApplication, Application $targetApplication): void -{ - $applicationPreviews = $sourceApplication->previews()->get(); - foreach ($applicationPreviews as $preview) { - $newPreview = $preview->replicate([ - 'id', - 'created_at', - 'updated_at', - ])->fill([ - 'uuid' => (string) new Cuid2, - 'application_id' => $targetApplication->id, - 'status' => 'exited', - 'fqdn' => null, - 'docker_compose_domains' => null, - ]); - $newPreview->save(); - - // Regenerate FQDN for the cloned preview - if ($targetApplication->build_pack === 'dockercompose') { - $newPreview->generate_preview_fqdn_compose(); - } else { - $newPreview->generate_preview_fqdn(); - } - } -}