Skip to content

Commit 9212f3b

Browse files
committed
feat: Update resource deletion job to allow configurable options through API
1 parent 31b2196 commit 9212f3b

File tree

4 files changed

+59
-41
lines changed

4 files changed

+59
-41
lines changed

app/Http/Controllers/Api/ApplicationsController.php

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,23 +1269,17 @@ public function application_by_uuid(Request $request)
12691269
new OA\Parameter(
12701270
name: 'uuid',
12711271
in: 'path',
1272-
description: 'UUID of the application.',
1272+
description: 'UUID of the database.',
12731273
required: true,
12741274
schema: new OA\Schema(
12751275
type: 'string',
12761276
format: 'uuid',
12771277
)
12781278
),
1279-
new OA\Parameter(
1280-
name: 'cleanup',
1281-
in: 'query',
1282-
description: 'Delete configurations and volumes.',
1283-
required: false,
1284-
schema: new OA\Schema(
1285-
type: 'boolean',
1286-
default: true,
1287-
)
1288-
),
1279+
new OA\Parameter(name: 'delete_configurations', in: 'query', required: false, description: 'Delete configurations.', schema: new OA\Schema(type: 'boolean', default: true)),
1280+
new OA\Parameter(name: 'delete_volumes', in: 'query', required: false, description: 'Delete volumes.', schema: new OA\Schema(type: 'boolean', default: true)),
1281+
new OA\Parameter(name: 'docker_cleanup', in: 'query', required: false, description: 'Run docker cleanup.', schema: new OA\Schema(type: 'boolean', default: true)),
1282+
new OA\Parameter(name: 'delete_connected_networks', in: 'query', required: false, description: 'Delete connected networks.', schema: new OA\Schema(type: 'boolean', default: true)),
12891283
],
12901284
responses: [
12911285
new OA\Response(
@@ -1333,10 +1327,14 @@ public function delete_by_uuid(Request $request)
13331327
'message' => 'Application not found',
13341328
], 404);
13351329
}
1330+
13361331
DeleteResourceJob::dispatch(
13371332
resource: $application,
1338-
deleteConfigurations: $cleanup,
1339-
deleteVolumes: $cleanup);
1333+
deleteConfigurations: $request->query->get('delete_configurations', true),
1334+
deleteVolumes: $request->query->get('delete_volumes', true),
1335+
dockerCleanup: $request->query->get('docker_cleanup', true),
1336+
deleteConnectedNetworks: $request->query->get('delete_connected_networks', true)
1337+
);
13401338

13411339
return response()->json([
13421340
'message' => 'Application deletion request queued.',

app/Http/Controllers/Api/DatabasesController.php

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,16 +1541,10 @@ public function create_database(Request $request, NewDatabaseTypes $type)
15411541
format: 'uuid',
15421542
)
15431543
),
1544-
new OA\Parameter(
1545-
name: 'cleanup',
1546-
in: 'query',
1547-
description: 'Delete configurations and volumes.',
1548-
required: false,
1549-
schema: new OA\Schema(
1550-
type: 'boolean',
1551-
default: true,
1552-
)
1553-
),
1544+
new OA\Parameter(name: 'delete_configurations', in: 'query', required: false, description: 'Delete configurations.', schema: new OA\Schema(type: 'boolean', default: true)),
1545+
new OA\Parameter(name: 'delete_volumes', in: 'query', required: false, description: 'Delete volumes.', schema: new OA\Schema(type: 'boolean', default: true)),
1546+
new OA\Parameter(name: 'docker_cleanup', in: 'query', required: false, description: 'Run docker cleanup.', schema: new OA\Schema(type: 'boolean', default: true)),
1547+
new OA\Parameter(name: 'delete_connected_networks', in: 'query', required: false, description: 'Delete connected networks.', schema: new OA\Schema(type: 'boolean', default: true)),
15541548
],
15551549
responses: [
15561550
new OA\Response(
@@ -1595,10 +1589,14 @@ public function delete_by_uuid(Request $request)
15951589
if (! $database) {
15961590
return response()->json(['message' => 'Database not found.'], 404);
15971591
}
1592+
15981593
DeleteResourceJob::dispatch(
15991594
resource: $database,
1600-
deleteConfigurations: $cleanup,
1601-
deleteVolumes: $cleanup);
1595+
deleteConfigurations: $request->query->get('delete_configurations', true),
1596+
deleteVolumes: $request->query->get('delete_volumes', true),
1597+
dockerCleanup: $request->query->get('docker_cleanup', true),
1598+
deleteConnectedNetworks: $request->query->get('delete_connected_networks', true)
1599+
);
16021600

16031601
return response()->json([
16041602
'message' => 'Database deletion request queued.',

app/Http/Controllers/Api/ServicesController.php

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,10 @@ public function service_by_uuid(Request $request)
432432
tags: ['Services'],
433433
parameters: [
434434
new OA\Parameter(name: 'uuid', in: 'path', required: true, description: 'Service UUID', schema: new OA\Schema(type: 'string')),
435+
new OA\Parameter(name: 'delete_configurations', in: 'query', required: false, description: 'Delete configurations.', schema: new OA\Schema(type: 'boolean', default: true)),
436+
new OA\Parameter(name: 'delete_volumes', in: 'query', required: false, description: 'Delete volumes.', schema: new OA\Schema(type: 'boolean', default: true)),
437+
new OA\Parameter(name: 'docker_cleanup', in: 'query', required: false, description: 'Run docker cleanup.', schema: new OA\Schema(type: 'boolean', default: true)),
438+
new OA\Parameter(name: 'delete_connected_networks', in: 'query', required: false, description: 'Delete connected networks.', schema: new OA\Schema(type: 'boolean', default: true)),
435439
],
436440
responses: [
437441
new OA\Response(
@@ -476,7 +480,14 @@ public function delete_by_uuid(Request $request)
476480
if (! $service) {
477481
return response()->json(['message' => 'Service not found.'], 404);
478482
}
479-
DeleteResourceJob::dispatch($service);
483+
484+
DeleteResourceJob::dispatch(
485+
resource: $service,
486+
deleteConfigurations: $request->query->get('delete_configurations', true),
487+
deleteVolumes: $request->query->get('delete_volumes', true),
488+
dockerCleanup: $request->query->get('docker_cleanup', true),
489+
deleteConnectedNetworks: $request->query->get('delete_connected_networks', true)
490+
);
480491

481492
return response()->json([
482493
'message' => 'Service deletion request queued.',
@@ -516,7 +527,8 @@ public function delete_by_uuid(Request $request)
516527
items: new OA\Items(ref: '#/components/schemas/EnvironmentVariable')
517528
)
518529
),
519-
]),
530+
]
531+
),
520532
new OA\Response(
521533
response: 401,
522534
ref: '#/components/responses/401',
@@ -619,7 +631,8 @@ public function envs(Request $request)
619631
]
620632
)
621633
),
622-
]),
634+
]
635+
),
623636
new OA\Response(
624637
response: 401,
625638
ref: '#/components/responses/401',
@@ -738,7 +751,8 @@ public function update_env_by_uuid(Request $request)
738751
]
739752
)
740753
),
741-
]),
754+
]
755+
),
742756
new OA\Response(
743757
response: 401,
744758
ref: '#/components/responses/401',
@@ -853,7 +867,8 @@ public function create_bulk_envs(Request $request)
853867
]
854868
)
855869
),
856-
]),
870+
]
871+
),
857872
new OA\Response(
858873
response: 401,
859874
ref: '#/components/responses/401',
@@ -953,7 +968,8 @@ public function create_env(Request $request)
953968
]
954969
)
955970
),
956-
]),
971+
]
972+
),
957973
new OA\Response(
958974
response: 401,
959975
ref: '#/components/responses/401',
@@ -1025,9 +1041,11 @@ public function delete_env_by_uuid(Request $request)
10251041
type: 'object',
10261042
properties: [
10271043
'message' => ['type' => 'string', 'example' => 'Service starting request queued.'],
1028-
])
1044+
]
1045+
)
10291046
),
1030-
]),
1047+
]
1048+
),
10311049
new OA\Response(
10321050
response: 401,
10331051
ref: '#/components/responses/401',
@@ -1101,9 +1119,11 @@ public function action_deploy(Request $request)
11011119
type: 'object',
11021120
properties: [
11031121
'message' => ['type' => 'string', 'example' => 'Service stopping request queued.'],
1104-
])
1122+
]
1123+
)
11051124
),
1106-
]),
1125+
]
1126+
),
11071127
new OA\Response(
11081128
response: 401,
11091129
ref: '#/components/responses/401',
@@ -1177,9 +1197,11 @@ public function action_stop(Request $request)
11771197
type: 'object',
11781198
properties: [
11791199
'message' => ['type' => 'string', 'example' => 'Service restaring request queued.'],
1180-
])
1200+
]
1201+
)
11811202
),
1182-
]),
1203+
]
1204+
),
11831205
new OA\Response(
11841206
response: 401,
11851207
ref: '#/components/responses/401',

app/Jobs/DeleteResourceJob.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
3131

3232
public function __construct(
3333
public Application|Service|StandalonePostgresql|StandaloneRedis|StandaloneMongodb|StandaloneMysql|StandaloneMariadb|StandaloneKeydb|StandaloneDragonfly|StandaloneClickhouse $resource,
34-
public bool $deleteConfigurations,
35-
public bool $deleteVolumes,
36-
public bool $dockerCleanup,
37-
public bool $deleteConnectedNetworks
34+
public bool $deleteConfigurations = true,
35+
public bool $deleteVolumes = true,
36+
public bool $dockerCleanup = true,
37+
public bool $deleteConnectedNetworks = true
3838
) {}
3939

4040
public function handle()

0 commit comments

Comments
 (0)