2828use Log ;
2929use Alert ;
3030use Javascript ;
31+ use Prologue \Alerts \AlertsMessageBag ;
3132use Pterodactyl \Contracts \Repository \AllocationRepositoryInterface ;
3233use Pterodactyl \Contracts \Repository \DatabaseRepositoryInterface ;
3334use Pterodactyl \Contracts \Repository \LocationRepositoryInterface ;
3637use Pterodactyl \Contracts \Repository \ServiceRepositoryInterface ;
3738use Pterodactyl \Http \Requests \Admin \ServerFormRequest ;
3839use Pterodactyl \Models ;
40+ use Pterodactyl \Models \Server ;
3941use Illuminate \Http \Request ;
4042use GuzzleHttp \Exception \TransferException ;
4143use Pterodactyl \Exceptions \DisplayException ;
4244use Pterodactyl \Http \Controllers \Controller ;
4345use Pterodactyl \Repositories \Eloquent \DatabaseHostRepository ;
44- use Pterodactyl \Repositories \ServerRepository ;
45- use Pterodactyl \Repositories \DatabaseRepository ;
4646use Pterodactyl \Exceptions \DisplayValidationException ;
4747use Pterodactyl \Services \Servers \CreationService ;
48+ use Pterodactyl \Services \Servers \DetailsModificationService ;
4849
4950class ServersController extends Controller
5051{
52+ /**
53+ * @var \Prologue\Alerts\AlertsMessageBag
54+ */
55+ protected $ alert ;
56+
5157 /**
5258 * @var \Pterodactyl\Contracts\Repository\AllocationRepositoryInterface
5359 */
@@ -73,6 +79,11 @@ class ServersController extends Controller
7379 */
7480 protected $ databaseHostRepository ;
7581
82+ /**
83+ * @var \Pterodactyl\Services\Servers\DetailsModificationService
84+ */
85+ protected $ detailsModificationService ;
86+
7687 /**
7788 * @var \Pterodactyl\Contracts\Repository\LocationRepositoryInterface
7889 */
@@ -99,22 +110,26 @@ class ServersController extends Controller
99110 protected $ serviceRepository ;
100111
101112 public function __construct (
113+ AlertsMessageBag $ alert ,
102114 AllocationRepositoryInterface $ allocationRepository ,
103115 ConfigRepository $ config ,
104116 CreationService $ service ,
105117 \Pterodactyl \Services \Database \CreationService $ databaseCreationService ,
106118 DatabaseRepositoryInterface $ databaseRepository ,
107119 DatabaseHostRepository $ databaseHostRepository ,
120+ DetailsModificationService $ detailsModificationService ,
108121 LocationRepositoryInterface $ locationRepository ,
109122 NodeRepositoryInterface $ nodeRepository ,
110123 ServerRepositoryInterface $ repository ,
111124 ServiceRepositoryInterface $ serviceRepository
112125 ) {
126+ $ this ->alert = $ alert ;
113127 $ this ->allocationRepository = $ allocationRepository ;
114128 $ this ->config = $ config ;
115129 $ this ->databaseCreationService = $ databaseCreationService ;
116130 $ this ->databaseRepository = $ databaseRepository ;
117131 $ this ->databaseHostRepository = $ databaseHostRepository ;
132+ $ this ->detailsModificationService = $ detailsModificationService ;
118133 $ this ->locationRepository = $ locationRepository ;
119134 $ this ->nodeRepository = $ nodeRepository ;
120135 $ this ->repository = $ repository ;
@@ -321,61 +336,40 @@ public function viewDelete(Request $request, $id)
321336 /**
322337 * Update the details for a server.
323338 *
324- * @param \Illuminate\Http\Request $request
325- * @param int $id
339+ * @param \Illuminate\Http\Request $request
340+ * @param \Pterodactyl\Models\Server $server
326341 * @return \Illuminate\Http\RedirectResponse
342+ *
343+ * @throws \Pterodactyl\Exceptions\DisplayException
344+ * @throws \Pterodactyl\Exceptions\Model\DataValidationException
327345 */
328- public function setDetails (ServerFormRequest $ request , Models \ Server $ server )
346+ public function setDetails (Request $ request , Server $ server )
329347 {
330- dd ($ server );
331- $ repo = new ServerRepository ;
332- try {
333- $ repo ->updateDetails ($ id , array_merge (
334- $ request ->only ('description ' ),
335- $ request ->intersect ([
336- 'owner_id ' , 'name ' , 'reset_token ' ,
337- ])
338- ));
348+ $ this ->detailsModificationService ->edit ($ server , $ request ->only ([
349+ 'owner_id ' , 'name ' , 'description ' , 'reset_token ' ,
350+ ]));
339351
340- Alert::success ('Server details were successfully updated. ' )->flash ();
341- } catch (DisplayValidationException $ ex ) {
342- return redirect ()->route ('admin.servers.view.details ' , $ id )->withErrors (json_decode ($ ex ->getMessage ()))->withInput ();
343- } catch (DisplayException $ ex ) {
344- Alert::danger ($ ex ->getMessage ())->flash ();
345- } catch (\Exception $ ex ) {
346- Log::error ($ ex );
347- Alert::danger ('An unhandled exception occured while attemping to update this server. This error has been logged. ' )->flash ();
348- }
352+ $ this ->alert ->success (trans ('admin/server.alerts.details_updated ' ))->flash ();
349353
350- return redirect ()->route ('admin.servers.view.details ' , $ id )-> withInput ( );
354+ return redirect ()->route ('admin.servers.view.details ' , $ server -> id );
351355 }
352356
353357 /**
354358 * Set the new docker container for a server.
355359 *
356- * @param \Illuminate\Http\Request $request
357- * @param int $id
360+ * @param \Illuminate\Http\Request $request
361+ * @param \Pterodactyl\Models\Server $server
358362 * @return \Illuminate\Http\RedirectResponse
363+ *
364+ * @throws \Pterodactyl\Exceptions\DisplayException
365+ * @throws \Pterodactyl\Exceptions\Model\DataValidationException
359366 */
360- public function setContainer (Request $ request , $ id )
367+ public function setContainer (Request $ request , Server $ server )
361368 {
362- $ repo = new ServerRepository ;
363-
364- try {
365- $ repo ->updateContainer ($ id , $ request ->intersect ('docker_image ' ));
366-
367- Alert::success ('Successfully updated this server \'s docker image. ' )->flash ();
368- } catch (DisplayValidationException $ ex ) {
369- return redirect ()->route ('admin.servers.view.details ' , $ id )->withErrors (json_decode ($ ex ->getMessage ()))->withInput ();
370- } catch (TransferException $ ex ) {
371- Log::warning ($ ex );
372- Alert::danger ('A TransferException occured while attempting to update the container image. Is the daemon online? This error has been logged. ' );
373- } catch (\Exception $ ex ) {
374- Log::error ($ ex );
375- Alert::danger ('An unhandled exception occured while attemping to update this server \'s docker image. This error has been logged. ' )->flash ();
376- }
369+ $ this ->detailsModificationService ->setDockerImage ($ server , $ request ->input ('docker_image ' ));
370+ $ this ->alert ->success (trans ('admin/server.alerts.docker_image_updated ' ))->flash ();
377371
378- return redirect ()->route ('admin.servers.view.details ' , $ id );
372+ return redirect ()->route ('admin.servers.view.details ' , $ server -> id );
379373 }
380374
381375 /**
0 commit comments