Skip to content

Commit 07da9de

Browse files
committed
fix: #116 remove services (processes) when a service has been deleted from ui
1 parent 2073247 commit 07da9de

File tree

8 files changed

+55
-208
lines changed

8 files changed

+55
-208
lines changed

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ WORKDIR /app
1414

1515
ENV COMPOSER_ALLOW_SUPERUSER=1
1616
ENV SERVER_NAME=":8080"
17+
ENV APP_NAME="Ptah.sh"
1718

1819
COPY package.json .
1920
COPY package-lock.json .

app/Http/Middleware/EnsureTeamSubscription.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ public function handle(Request $request, Closure $next): Response
2020

2121
$doesntHaveSubscription = $subscription === null || ! $subscription->valid();
2222
if ($doesntHaveSubscription) {
23+
if ($request->isJson()) {
24+
return response()->json([
25+
'message' => 'You must have a valid subscription to access this resource.',
26+
], 403);
27+
}
28+
29+
session()->flash('error', 'You must have a valid subscription to access this resource.');
30+
2331
return redirect()->route('teams.billing.show', $team);
2432
}
2533

app/Models/Service.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace App\Models;
44

5+
use App\Models\DeploymentData\Process;
56
use App\Models\NodeTasks\DeleteService\DeleteServiceMeta;
67
use App\Traits\HasOwningTeam;
78
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -40,17 +41,18 @@ protected static function booted()
4041
'invoker_id' => auth()->id(),
4142
]);
4243

43-
$deleteProcessesTasks = collect($service->latestDeployment->data->processes)->map(function ($process) use ($service) {
44+
$deleteProcessesTasks = collect($service->latestDeployment->data->processes)->map(function (Process $process) use ($service) {
4445
return [
4546
'type' => NodeTaskType::DeleteService,
4647
'meta' => new DeleteServiceMeta($service->id, $process->name, $service->name),
4748
'payload' => [
48-
'ServiceName' => $service->docker_name,
49+
'ServiceName' => $process->dockerName,
4950
],
5051
];
5152
})->toArray();
5253

5354
// TODO: apply caddy config after the services deletion
55+
// https://github.com/ptah-sh/ptah-server/issues/117
5456
$taskGroup->tasks()->createMany($deleteProcessesTasks);
5557
});
5658
}

composer.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
{
2-
"name": "laravel/laravel",
2+
"name": "ptah-sh/ptah-server",
33
"type": "project",
4-
"description": "The skeleton application for the Laravel framework.",
4+
"description": "Ptah.sh SaaS server.",
55
"keywords": [
6-
"laravel",
7-
"framework"
6+
"docker",
7+
"deploy",
8+
"ptah",
9+
"ptah.sh",
10+
"ptah-server",
11+
"ptah-saas"
812
],
9-
"license": "MIT",
13+
"license": "FSL",
1014
"require": {
1115
"php": "^8.3",
1216
"ext-pdo": "*",

resources/js/Pages/Welcome.vue

Lines changed: 0 additions & 176 deletions
This file was deleted.

resources/js/app.js

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,31 @@
1-
import './bootstrap';
2-
import '../css/app.css';
1+
import "./bootstrap";
2+
import "../css/app.css";
33

4-
import 'flowbite';
5-
import {initFlowbite} from 'flowbite';
4+
import "flowbite";
5+
import { initFlowbite } from "flowbite";
66

7-
import { createApp, h } from 'vue';
8-
import { createInertiaApp } from '@inertiajs/vue3';
9-
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
10-
import { autoAnimatePlugin } from '@formkit/auto-animate/vue'
11-
import { ZiggyVue } from '../../vendor/tightenco/ziggy';
7+
import { createApp, h } from "vue";
8+
import { createInertiaApp } from "@inertiajs/vue3";
9+
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
10+
import { autoAnimatePlugin } from "@formkit/auto-animate/vue";
11+
import { ZiggyVue } from "../../vendor/tightenco/ziggy";
1212

13-
const appName = import.meta.env.VITE_APP_NAME || 'Laravel';
13+
const appName = import.meta.env.VITE_APP_NAME || "Ptah.sh";
1414

15-
import dayjs from 'dayjs';
16-
import RelativeTime from 'dayjs/plugin/relativeTime';
17-
import LocalizedFormat from 'dayjs/plugin/localizedFormat';
15+
import dayjs from "dayjs";
16+
import RelativeTime from "dayjs/plugin/relativeTime";
17+
import LocalizedFormat from "dayjs/plugin/localizedFormat";
1818

1919
dayjs.extend(RelativeTime);
2020
dayjs.extend(LocalizedFormat);
2121

2222
createInertiaApp({
2323
title: (title) => `${title} - ${appName}`,
24-
resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')),
24+
resolve: (name) =>
25+
resolvePageComponent(
26+
`./Pages/${name}.vue`,
27+
import.meta.glob("./Pages/**/*.vue"),
28+
),
2529
setup({ el, App, props, plugin }) {
2630
initFlowbite();
2731

@@ -32,6 +36,6 @@ createInertiaApp({
3236
.mount(el);
3337
},
3438
progress: {
35-
color: '#4B5563',
39+
color: "#4B5563",
3640
},
3741
});

resources/js/ssr.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
import { createSSRApp, h } from 'vue';
2-
import { renderToString } from '@vue/server-renderer';
3-
import { createInertiaApp } from '@inertiajs/vue3';
4-
import createServer from '@inertiajs/vue3/server';
5-
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
6-
import { ZiggyVue } from '../../vendor/tightenco/ziggy';
1+
import { createSSRApp, h } from "vue";
2+
import { renderToString } from "@vue/server-renderer";
3+
import { createInertiaApp } from "@inertiajs/vue3";
4+
import createServer from "@inertiajs/vue3/server";
5+
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
6+
import { ZiggyVue } from "../../vendor/tightenco/ziggy";
77

8-
const appName = import.meta.env.VITE_APP_NAME || 'Laravel';
8+
const appName = import.meta.env.VITE_APP_NAME || "Ptah.sh";
99

1010
createServer((page) =>
1111
createInertiaApp({
1212
page,
1313
render: renderToString,
1414
title: (title) => `${title} - ${appName}`,
15-
resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')),
15+
resolve: (name) =>
16+
resolvePageComponent(
17+
`./Pages/${name}.vue`,
18+
import.meta.glob("./Pages/**/*.vue"),
19+
),
1620
setup({ App, props, plugin }) {
1721
return createSSRApp({ render: () => h(App, props) })
1822
.use(plugin)
@@ -21,5 +25,5 @@ createServer((page) =>
2125
location: new URL(page.props.ziggy.location),
2226
});
2327
},
24-
})
28+
}),
2529
);

resources/views/app.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1">
66
<link rel="icon" type="image/png" href="{{ asset('favicon.png') }}">
77

8-
<title inertia>{{ config('app.name', 'Laravel') }}</title>
8+
<title inertia>{{ config('app.name', 'Ptah.sh') }}</title>
99

1010
<!-- Fonts -->
1111
<link rel="preconnect" href="https://fonts.bunny.net">

0 commit comments

Comments
 (0)