From 8019dc12670283ca790a255c068e0bb65d6e5906 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 30 Mar 2023 17:29:01 +0200 Subject: [PATCH] wip --- app/Http/Controllers/ProjectController.php | 80 +++----------------- app/Http/Livewire/DeployApplication.php | 2 +- app/Models/Project.php | 1 + resources/views/project/deployment.blade.php | 3 - resources/views/project/resources.blade.php | 6 +- routes/web.php | 8 +- 6 files changed, 19 insertions(+), 81 deletions(-) diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index d6cadf308..3641d3200 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers; +use App\Models\Application; +use App\Models\Environment; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -9,8 +11,7 @@ class ProjectController extends Controller { public function environments() { - $project_uuid = request()->route('project_uuid'); - $project = session('currentTeam')->projects->where('uuid', $project_uuid)->first(); + $project = session('currentTeam')->projects->where('uuid', request()->route('project_uuid'))->first(); if (!$project) { return redirect()->route('home'); } @@ -18,94 +19,33 @@ class ProjectController extends Controller } public function resources() { - $project_uuid = request()->route('project_uuid'); - $project = session('currentTeam')->projects->where('uuid', $project_uuid)->first(); + $project = session('currentTeam')->projects->where('uuid', request()->route('project_uuid'))->first(); if (!$project) { return redirect()->route('home'); } - $environment = $project->environments->where('name', request()->route('environment_name'))->first(); + $environment = Environment::where('name', request()->route('environment_name'))->where('project_id', $project->id)->first(); + // $environment = $project->environments->where('name', request()->route('environment_name'))->first(); return view('project.resources', ['project' => $project, 'environment' => $environment]); } public function application() { - $project_uuid = request()->route('project_uuid'); - $environment_name = request()->route('environment_name'); - $application_uuid = request()->route('application_uuid'); - $project = session('currentTeam')->projects->where('uuid', $project_uuid)->first(); - if (!$project) { - return redirect()->route('home'); - } - $environment = $project->environments->where('name', $environment_name)->first(); - if (!$environment) { - return redirect()->route('home'); - } - $application = $environment->applications->where('uuid', $application_uuid)->first(); + $application = Application::where('uuid', request()->route('application_uuid'))->first(); if (!$application) { return redirect()->route('home'); } - return view('project.application', ['project' => $project, 'application' => $application, 'deployments' => $application->deployments()]); + return view('project.application', ['application' => $application, 'deployments' => $application->deployments()]); } - public function database() - { - $project_uuid = request()->route('project_uuid'); - $environment_name = request()->route('environment_name'); - $database_uuid = request()->route('database_uuid'); - $project = session('currentTeam')->projects->where('uuid', $project_uuid)->first(); - if (!$project) { - return redirect()->route('home'); - } - $environment = $project->environments->where('name', $environment_name)->first(); - if (!$environment) { - return redirect()->route('home'); - } - $database = $environment->databases->where('uuid', $database_uuid)->first(); - if (!$database) { - return redirect()->route('home'); - } - return view('project.database', ['project' => $project, 'database' => $database]); - } - public function service() - { - $project_uuid = request()->route('project_uuid'); - $environment_name = request()->route('environment_name'); - $service_uuid = request()->route('service_uuid'); - - $project = session('currentTeam')->projects->where('uuid', $project_uuid)->first(); - if (!$project) { - return redirect()->route('home'); - } - $environment = $project->environments->where('name', $environment_name)->first(); - if (!$environment) { - return redirect()->route('home'); - } - $service = $environment->services->where('uuid', $service_uuid)->first(); - if (!$service) { - return redirect()->route('home'); - } - - return view('project.service', ['project' => $project, 'service' => $service]); - } public function deployment() { - $project_uuid = request()->route('project_uuid'); - $environment_name = request()->route('environment_name'); $application_uuid = request()->route('application_uuid'); $deployment_uuid = request()->route('deployment_uuid'); - $project = session('currentTeam')->projects->where('uuid', $project_uuid)->first(); - if (!$project) { - return redirect()->route('home'); - } - $environment = $project->environments->where('name', $environment_name)->first(); - if (!$environment) { - return redirect()->route('home'); - } - $application = $environment->applications->where('uuid', $application_uuid)->first(); + $application = Application::where('uuid', request()->route('application_uuid'))->first(); if (!$application) { return redirect()->route('home'); } $activity = $application->get_deployment($deployment_uuid); - return view('project.deployment', ['project' => $project, 'activity' => $activity]); + return view('project.deployment', ['activity' => $activity]); } } diff --git a/app/Http/Livewire/DeployApplication.php b/app/Http/Livewire/DeployApplication.php index 9a5deb245..5891743c3 100644 --- a/app/Http/Livewire/DeployApplication.php +++ b/app/Http/Livewire/DeployApplication.php @@ -221,7 +221,7 @@ class DeployApplication extends Component $this->execute_in_builder("docker build -f {$workdir}/Dockerfile --build-arg SOURCE_COMMIT=$(cat {$workdir}/.git-commit) --progress plain -t {$this->application->uuid}:$(cat {$workdir}/.git-commit) {$workdir}"); $this->command[] = "echo 'Done.'"; - // $this->execute_in_builder("test ! -z \"$(docker ps --format '{{.State}}' --filter 'name={$this->application->uuid}')\" && docker rm -f {$this->application->uuid} >/dev/null 2>&1"); + $this->execute_in_builder("docker rm -f {$this->application->uuid} >/dev/null 2>&1"); $this->command[] = "echo -n 'Deploying... '"; diff --git a/app/Models/Project.php b/app/Models/Project.php index 1b0a71049..0ebaf9d70 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -4,6 +4,7 @@ namespace App\Models; class Project extends BaseModel { + protected $with = ['settings', 'environments']; protected static function booted() { static::created(function ($project) { diff --git a/resources/views/project/deployment.blade.php b/resources/views/project/deployment.blade.php index 4d58b00ac..c49e8112e 100644 --- a/resources/views/project/deployment.blade.php +++ b/resources/views/project/deployment.blade.php @@ -1,7 +1,4 @@

Deployment

-

Name: {{ $project->name }}

-

UUID: {{ $project->uuid }}

-
diff --git a/resources/views/project/resources.blade.php b/resources/views/project/resources.blade.php index cdc5946ef..24f14d757 100644 --- a/resources/views/project/resources.blade.php +++ b/resources/views/project/resources.blade.php @@ -3,12 +3,12 @@
@foreach ($environment->applications as $application)

- + {{ $application->name }}

@endforeach - @foreach ($environment->databases as $database) + {{-- @foreach ($environment->databases as $database)

{{ $database->name }} @@ -21,6 +21,6 @@ {{ $service->name }}

- @endforeach + @endforeach --}}
diff --git a/routes/web.php b/routes/web.php index 067b0536f..f790904fa 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,11 +23,11 @@ Route::middleware(['auth'])->group(function () { Route::get('/project/{project_uuid}/{environment_name}', [ProjectController::class, 'resources'])->name('project.resources'); - Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}', [ProjectController::class, 'application'])->name('project.application'); - Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}/deployment/{deployment_uuid}', [ProjectController::class, 'deployment'])->name('project.deployment'); + Route::get('/application/{application_uuid}', [ProjectController::class, 'application'])->name('project.application'); + Route::get('/application/{application_uuid}/deployment/{deployment_uuid}', [ProjectController::class, 'deployment'])->name('project.deployment'); - Route::get('/project/{project_uuid}/{environment_name}/database/{database_uuid}', [ProjectController::class, 'database'])->name('project.database'); - Route::get('/project/{project_uuid}/{environment_name}/service/{service_uuid}', [ProjectController::class, 'service'])->name('project.service'); + // Route::get('/database/{database_uuid}', [ProjectController::class, 'database'])->name('project.database'); + // Route::get('//service/{service_uuid}', [ProjectController::class, 'service'])->name('project.service'); Route::get('/profile', function () { return view('profile');