33namespace Pterodactyl \Http \Controllers \API \Admin \Nodes ;
44
55use Spatie \Fractal \Fractal ;
6- use Illuminate \Http \Request ;
76use Pterodactyl \Models \Node ;
87use Illuminate \Http \Response ;
98use Illuminate \Http \JsonResponse ;
1312use Pterodactyl \Services \Nodes \NodeDeletionService ;
1413use Pterodactyl \Transformers \Api \Admin \NodeTransformer ;
1514use League \Fractal \Pagination \IlluminatePaginatorAdapter ;
16- use Pterodactyl \Http \Requests \Admin \Node \NodeFormRequest ;
1715use Pterodactyl \Contracts \Repository \NodeRepositoryInterface ;
16+ use Pterodactyl \Http \Requests \API \Admin \Nodes \GetNodeRequest ;
17+ use Pterodactyl \Http \Requests \API \Admin \Nodes \GetNodesRequest ;
18+ use Pterodactyl \Http \Requests \API \Admin \Nodes \StoreNodeRequest ;
19+ use Pterodactyl \Http \Requests \API \Admin \Nodes \DeleteNodeRequest ;
20+ use Pterodactyl \Http \Requests \API \Admin \Nodes \UpdateNodeRequest ;
1821
1922class NodeController extends Controller
2023{
@@ -69,52 +72,50 @@ public function __construct(
6972 /**
7073 * Return all of the nodes currently available on the Panel.
7174 *
72- * @param \Illuminate \Http\Request $request
75+ * @param \Pterodactyl \Http\Requests\API\Admin\Nodes\GetNodesRequest $request
7376 * @return array
7477 */
75- public function index (Request $ request ): array
78+ public function index (GetNodesRequest $ request ): array
7679 {
7780 $ nodes = $ this ->repository ->paginated (100 );
7881
79- $ fractal = $ this ->fractal ->collection ($ nodes )
80- ->transformWith (new NodeTransformer ($ request ))
82+ return $ this ->fractal ->collection ($ nodes )
83+ ->transformWith (( new NodeTransformer )-> setKey ($ request-> key () ))
8184 ->withResourceName ('node ' )
82- ->paginateWith (new IlluminatePaginatorAdapter ($ nodes ));
83-
84- return $ fractal ->toArray ();
85+ ->paginateWith (new IlluminatePaginatorAdapter ($ nodes ))
86+ ->toArray ();
8587 }
8688
8789 /**
8890 * Return data for a single instance of a node.
8991 *
90- * @param \Illuminate \Http\Request $request
91- * @param \Pterodactyl\Models\Node $node
92+ * @param \Pterodactyl \Http\Requests\API\Admin\Nodes\GetNodeRequest $request
93+ * @param \Pterodactyl\Models\Node $node
9294 * @return array
9395 */
94- public function view (Request $ request , Node $ node ): array
96+ public function view (GetNodeRequest $ request , Node $ node ): array
9597 {
96- $ fractal = $ this ->fractal ->item ($ node )
97- ->transformWith (new NodeTransformer ($ request ))
98- ->withResourceName ('node ' );
99-
100- return $ fractal ->toArray ();
98+ return $ this ->fractal ->item ($ node )
99+ ->transformWith ((new NodeTransformer )->setKey ($ request ->key ()))
100+ ->withResourceName ('node ' )
101+ ->toArray ();
101102 }
102103
103104 /**
104105 * Create a new node on the Panel. Returns the created node and a HTTP/201
105106 * status response on success.
106107 *
107- * @param \Pterodactyl\Http\Requests\Admin\Node\NodeFormRequest $request
108+ * @param \Pterodactyl\Http\Requests\API\ Admin\Nodes\StoreNodeRequest $request
108109 * @return \Illuminate\Http\JsonResponse
109110 *
110111 * @throws \Pterodactyl\Exceptions\Model\DataValidationException
111112 */
112- public function store (NodeFormRequest $ request ): JsonResponse
113+ public function store (StoreNodeRequest $ request ): JsonResponse
113114 {
114- $ node = $ this ->creationService ->handle ($ request ->normalize ());
115+ $ node = $ this ->creationService ->handle ($ request ->validated ());
115116
116117 return $ this ->fractal ->item ($ node )
117- ->transformWith (new NodeTransformer ($ request ))
118+ ->transformWith (( new NodeTransformer )-> setKey ($ request-> key () ))
118119 ->withResourceName ('node ' )
119120 ->addMeta ([
120121 'link ' => route ('api.admin.node.view ' , ['node ' => $ node ->id ]),
@@ -125,20 +126,20 @@ public function store(NodeFormRequest $request): JsonResponse
125126 /**
126127 * Update an existing node on the Panel.
127128 *
128- * @param \Pterodactyl\Http\Requests\Admin\Node\NodeFormRequest $request
129- * @param \Pterodactyl\Models\Node $node
129+ * @param \Pterodactyl\Http\Requests\API\ Admin\Nodes\UpdateNodeRequest $request
130+ * @param \Pterodactyl\Models\Node $node
130131 * @return array
131132 *
132133 * @throws \Pterodactyl\Exceptions\DisplayException
133134 * @throws \Pterodactyl\Exceptions\Model\DataValidationException
134135 * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
135136 */
136- public function update (NodeFormRequest $ request , Node $ node ): array
137+ public function update (UpdateNodeRequest $ request , Node $ node ): array
137138 {
138- $ node = $ this ->updateService ->returnUpdatedModel ()->handle ($ node , $ request ->normalize ());
139+ $ node = $ this ->updateService ->returnUpdatedModel ()->handle ($ node , $ request ->validated ());
139140
140141 return $ this ->fractal ->item ($ node )
141- ->transformWith (new NodeTransformer ($ request ))
142+ ->transformWith (( new NodeTransformer )-> setKey ($ request-> key () ))
142143 ->withResourceName ('node ' )
143144 ->toArray ();
144145 }
@@ -147,15 +148,16 @@ public function update(NodeFormRequest $request, Node $node): array
147148 * Deletes a given node from the Panel as long as there are no servers
148149 * currently attached to it.
149150 *
150- * @param \Pterodactyl\Models\Node $node
151+ * @param \Pterodactyl\Http\Requests\API\Admin\Nodes\DeleteNodeRequest $request
152+ * @param \Pterodactyl\Models\Node $node
151153 * @return \Illuminate\Http\Response
152154 *
153155 * @throws \Pterodactyl\Exceptions\Service\HasActiveServersException
154156 */
155- public function delete (Node $ node ): Response
157+ public function delete (DeleteNodeRequest $ request , Node $ node ): Response
156158 {
157159 $ this ->deletionService ->handle ($ node );
158160
159- return response ('' , 201 );
161+ return response ('' , 204 );
160162 }
161163}
0 commit comments