44
55use Illuminate \View \View ;
66use Illuminate \Http \Request ;
7+ use Illuminate \Http \Response ;
78use Illuminate \Http \JsonResponse ;
89use Illuminate \Http \RedirectResponse ;
910use Prologue \Alerts \AlertsMessageBag ;
1011use Pterodactyl \Http \Controllers \Controller ;
1112use Pterodactyl \Traits \Controllers \JavascriptInjection ;
1213use Pterodactyl \Services \Databases \DatabasePasswordService ;
14+ use Pterodactyl \Services \Databases \DatabaseManagementService ;
1315use Pterodactyl \Services \Databases \DeployServerDatabaseService ;
1416use Pterodactyl \Contracts \Repository \DatabaseRepositoryInterface ;
1517use Pterodactyl \Contracts \Repository \DatabaseHostRepositoryInterface ;
1618use Pterodactyl \Http \Requests \Server \Database \StoreServerDatabaseRequest ;
19+ use Pterodactyl \Http \Requests \Server \Database \DeleteServerDatabaseRequest ;
1720
1821class DatabaseController extends Controller
1922{
@@ -34,6 +37,11 @@ class DatabaseController extends Controller
3437 */
3538 private $ databaseHostRepository ;
3639
40+ /**
41+ * @var \Pterodactyl\Services\Databases\DatabaseManagementService
42+ */
43+ private $ managementService ;
44+
3745 /**
3846 * @var \Pterodactyl\Services\Databases\DatabasePasswordService
3947 */
@@ -50,19 +58,22 @@ class DatabaseController extends Controller
5058 * @param \Prologue\Alerts\AlertsMessageBag $alert
5159 * @param \Pterodactyl\Services\Databases\DeployServerDatabaseService $deployServerDatabaseService
5260 * @param \Pterodactyl\Contracts\Repository\DatabaseHostRepositoryInterface $databaseHostRepository
61+ * @param \Pterodactyl\Services\Databases\DatabaseManagementService $managementService
5362 * @param \Pterodactyl\Services\Databases\DatabasePasswordService $passwordService
5463 * @param \Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface $repository
5564 */
5665 public function __construct (
5766 AlertsMessageBag $ alert ,
5867 DeployServerDatabaseService $ deployServerDatabaseService ,
5968 DatabaseHostRepositoryInterface $ databaseHostRepository ,
69+ DatabaseManagementService $ managementService ,
6070 DatabasePasswordService $ passwordService ,
6171 DatabaseRepositoryInterface $ repository
6272 ) {
6373 $ this ->alert = $ alert ;
6474 $ this ->databaseHostRepository = $ databaseHostRepository ;
6575 $ this ->deployServerDatabaseService = $ deployServerDatabaseService ;
76+ $ this ->managementService = $ managementService ;
6677 $ this ->passwordService = $ passwordService ;
6778 $ this ->repository = $ repository ;
6879 }
@@ -136,4 +147,19 @@ public function update(Request $request): JsonResponse
136147
137148 return response ()->json (['password ' => $ password ]);
138149 }
150+
151+ /**
152+ * Delete a database for this server from the SQL server and Panel database.
153+ *
154+ * @param \Pterodactyl\Http\Requests\Server\Database\DeleteServerDatabaseRequest $request
155+ * @return \Illuminate\Http\Response
156+ *
157+ * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
158+ */
159+ public function delete (DeleteServerDatabaseRequest $ request ): Response
160+ {
161+ $ this ->managementService ->delete ($ request ->attributes ->get ('database ' )->id );
162+
163+ return response ('' , Response::HTTP_NO_CONTENT );
164+ }
139165}
0 commit comments