22
33namespace Pterodactyl \Http \Controllers \Api \Client \Servers ;
44
5- use Illuminate \Support \Str ;
65use Illuminate \Http \Response ;
76use Pterodactyl \Models \Server ;
87use Pterodactyl \Models \Database ;
8+ use Pterodactyl \Repositories \Eloquent \DatabaseRepository ;
99use Pterodactyl \Services \Databases \DatabasePasswordService ;
1010use Pterodactyl \Transformers \Api \Client \DatabaseTransformer ;
1111use Pterodactyl \Services \Databases \DatabaseManagementService ;
1212use Pterodactyl \Services \Databases \DeployServerDatabaseService ;
1313use Pterodactyl \Http \Controllers \Api \Client \ClientApiController ;
14- use Pterodactyl \Contracts \Repository \DatabaseRepositoryInterface ;
1514use Pterodactyl \Http \Requests \Api \Client \Servers \Databases \GetDatabasesRequest ;
1615use Pterodactyl \Http \Requests \Api \Client \Servers \Databases \StoreDatabaseRequest ;
1716use Pterodactyl \Http \Requests \Api \Client \Servers \Databases \DeleteDatabaseRequest ;
@@ -25,7 +24,7 @@ class DatabaseController extends ClientApiController
2524 private $ deployDatabaseService ;
2625
2726 /**
28- * @var \Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface
27+ * @var \Pterodactyl\Repositories\Eloquent\DatabaseRepository
2928 */
3029 private $ repository ;
3130
@@ -42,15 +41,15 @@ class DatabaseController extends ClientApiController
4241 /**
4342 * DatabaseController constructor.
4443 *
45- * @param \Pterodactyl\Services\Databases\DatabaseManagementService $managementService
46- * @param \Pterodactyl\Services\Databases\DatabasePasswordService $passwordService
47- * @param \Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface $repository
48- * @param \Pterodactyl\Services\Databases\DeployServerDatabaseService $deployDatabaseService
44+ * @param \Pterodactyl\Services\Databases\DatabaseManagementService $managementService
45+ * @param \Pterodactyl\Services\Databases\DatabasePasswordService $passwordService
46+ * @param \Pterodactyl\Repositories\Eloquent\DatabaseRepository $repository
47+ * @param \Pterodactyl\Services\Databases\DeployServerDatabaseService $deployDatabaseService
4948 */
5049 public function __construct (
5150 DatabaseManagementService $ managementService ,
5251 DatabasePasswordService $ passwordService ,
53- DatabaseRepositoryInterface $ repository ,
52+ DatabaseRepository $ repository ,
5453 DeployServerDatabaseService $ deployDatabaseService
5554 ) {
5655 parent ::__construct ();
@@ -62,12 +61,15 @@ public function __construct(
6261 }
6362
6463 /**
64+ * Return all of the databases that belong to the given server.
65+ *
6566 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Databases\GetDatabasesRequest $request
67+ * @param \Pterodactyl\Models\Server $server
6668 * @return array
6769 */
68- public function index (GetDatabasesRequest $ request ): array
70+ public function index (GetDatabasesRequest $ request, Server $ server ): array
6971 {
70- $ databases = $ this ->repository ->getDatabasesForServer ($ request -> getModel (Server::class) ->id );
72+ $ databases = $ this ->repository ->getDatabasesForServer ($ server ->id );
7173
7274 return $ this ->fractal ->collection ($ databases )
7375 ->transformWith ($ this ->getTransformer (DatabaseTransformer::class))
@@ -78,13 +80,14 @@ public function index(GetDatabasesRequest $request): array
7880 * Create a new database for the given server and return it.
7981 *
8082 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Databases\StoreDatabaseRequest $request
83+ * @param \Pterodactyl\Models\Server $server
8184 * @return array
8285 *
8386 * @throws \Pterodactyl\Exceptions\Service\Database\DatabaseClientFeatureNotEnabledException
8487 */
85- public function store (StoreDatabaseRequest $ request ): array
88+ public function store (StoreDatabaseRequest $ request, Server $ server ): array
8689 {
87- $ database = $ this ->deployDatabaseService ->handle ($ request -> getModel (Server::class) , $ request ->validated ());
90+ $ database = $ this ->deployDatabaseService ->handle ($ server , $ request ->validated ());
8891
8992 return $ this ->fractal ->item ($ database )
9093 ->parseIncludes (['password ' ])
@@ -97,17 +100,15 @@ public function store(StoreDatabaseRequest $request): array
97100 * the caller.
98101 *
99102 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Databases\RotatePasswordRequest $request
103+ * @param \Pterodactyl\Models\Server $server
104+ * @param \Pterodactyl\Models\Database $database
100105 * @return array
101106 *
102- * @throws \Pterodactyl\Exceptions\Model\DataValidationException
103- * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
107+ * @throws \Throwable
104108 */
105- public function rotatePassword (RotatePasswordRequest $ request )
109+ public function rotatePassword (RotatePasswordRequest $ request, Server $ server , Database $ database )
106110 {
107- $ database = $ request ->getModel (Database::class);
108-
109- $ this ->passwordService ->handle ($ database , Str::random (24 ));
110-
111+ $ this ->passwordService ->handle ($ database );
111112 $ database ->refresh ();
112113
113114 return $ this ->fractal ->item ($ database )
@@ -117,14 +118,18 @@ public function rotatePassword(RotatePasswordRequest $request)
117118 }
118119
119120 /**
121+ * Removes a database from the server.
122+ *
120123 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Databases\DeleteDatabaseRequest $request
124+ * @param \Pterodactyl\Models\Server $server
125+ * @param \Pterodactyl\Models\Database $database
121126 * @return \Illuminate\Http\Response
122127 *
123128 * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
124129 */
125- public function delete (DeleteDatabaseRequest $ request ): Response
130+ public function delete (DeleteDatabaseRequest $ request, Server $ server , Database $ database ): Response
126131 {
127- $ this ->managementService ->delete ($ request -> getModel (Database::class) ->id );
132+ $ this ->managementService ->delete ($ database ->id );
128133
129134 return Response::create ('' , Response::HTTP_NO_CONTENT );
130135 }
0 commit comments