33namespace Pterodactyl \Http \Controllers \Api \Application \Nodes ;
44
55use Pterodactyl \Models \Node ;
6- use Illuminate \Http \Response ;
76use Illuminate \Http \JsonResponse ;
7+ use Spatie \QueryBuilder \QueryBuilder ;
88use Pterodactyl \Services \Nodes \NodeUpdateService ;
99use Pterodactyl \Services \Nodes \NodeCreationService ;
1010use Pterodactyl \Services \Nodes \NodeDeletionService ;
@@ -69,7 +69,10 @@ public function __construct(
6969 */
7070 public function index (GetNodesRequest $ request ): array
7171 {
72- $ nodes = $ this ->repository ->setSearchTerm ($ request ->input ('search ' ))->paginated (50 );
72+ $ nodes = QueryBuilder::for (Node::query ())
73+ ->allowedFilters (['uuid ' , 'name ' , 'fqdn ' , 'daemon_token_id ' ])
74+ ->allowedSorts (['id ' , 'uuid ' , 'memory ' , 'disk ' ])
75+ ->paginate (100 );
7376
7477 return $ this ->fractal ->collection ($ nodes )
7578 ->transformWith ($ this ->getTransformer (NodeTransformer::class))
@@ -80,11 +83,12 @@ public function index(GetNodesRequest $request): array
8083 * Return data for a single instance of a node.
8184 *
8285 * @param \Pterodactyl\Http\Requests\Api\Application\Nodes\GetNodeRequest $request
86+ * @param \Pterodactyl\Models\Node $node
8387 * @return array
8488 */
85- public function view (GetNodeRequest $ request ): array
89+ public function view (GetNodeRequest $ request, Node $ node ): array
8690 {
87- return $ this ->fractal ->item ($ request -> getModel (Node::class) )
91+ return $ this ->fractal ->item ($ node )
8892 ->transformWith ($ this ->getTransformer (NodeTransformer::class))
8993 ->toArray ();
9094 }
@@ -116,16 +120,15 @@ public function store(StoreNodeRequest $request): JsonResponse
116120 * Update an existing node on the Panel.
117121 *
118122 * @param \Pterodactyl\Http\Requests\Api\Application\Nodes\UpdateNodeRequest $request
123+ * @param \Pterodactyl\Models\Node $node
119124 * @return array
120125 *
121- * @throws \Pterodactyl\Exceptions\DisplayException
122- * @throws \Pterodactyl\Exceptions\Model\DataValidationException
123- * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
126+ * @throws \Throwable
124127 */
125- public function update (UpdateNodeRequest $ request ): array
128+ public function update (UpdateNodeRequest $ request, Node $ node ): array
126129 {
127130 $ node = $ this ->updateService ->handle (
128- $ request -> getModel (Node::class) , $ request ->validated (), $ request ->input ('reset_secret ' ) === true
131+ $ node , $ request ->validated (), $ request ->input ('reset_secret ' ) === true
129132 );
130133
131134 return $ this ->fractal ->item ($ node )
@@ -138,14 +141,15 @@ public function update(UpdateNodeRequest $request): array
138141 * currently attached to it.
139142 *
140143 * @param \Pterodactyl\Http\Requests\Api\Application\Nodes\DeleteNodeRequest $request
141- * @return \Illuminate\Http\Response
144+ * @param \Pterodactyl\Models\Node $node
145+ * @return \Illuminate\Http\JsonResponse
142146 *
143147 * @throws \Pterodactyl\Exceptions\Service\HasActiveServersException
144148 */
145- public function delete (DeleteNodeRequest $ request ): Response
149+ public function delete (DeleteNodeRequest $ request, Node $ node ): JsonResponse
146150 {
147- $ this ->deletionService ->handle ($ request -> getModel (Node::class) );
151+ $ this ->deletionService ->handle ($ node );
148152
149- return response ( '' , 204 );
153+ return new JsonResponse ([], JsonResponse:: HTTP_NO_CONTENT );
150154 }
151155}
0 commit comments