22
33namespace Pterodactyl \Http \Controllers \Admin ;
44
5+ use Pterodactyl \Models \Mount ;
56use Prologue \Alerts \AlertsMessageBag ;
7+ use Pterodactyl \Exceptions \DisplayException ;
68use Pterodactyl \Http \Controllers \Controller ;
7- use Pterodactyl \Http \ Requests \ Admin \ MountFormRequest ;
9+ use Pterodactyl \Services \ Mounts \ MountUpdateService ;
810use Pterodactyl \Services \Mounts \MountCreationService ;
11+ use Pterodactyl \Services \Mounts \MountDeletionService ;
12+ use Pterodactyl \Http \Requests \Admin \MountFormRequest ;
913use Pterodactyl \Repositories \Eloquent \MountRepository ;
1014
1115class MountController extends Controller
@@ -21,25 +25,41 @@ class MountController extends Controller
2125 protected $ repository ;
2226
2327 /**
24- * @var \Pterodactyl\Services\Locations\LocationCreationService
28+ * @var \Pterodactyl\Services\Mounts\MountCreationService
2529 */
2630 protected $ creationService ;
2731
32+ /**
33+ * @var \Pterodactyl\Services\Mounts\MountDeletionService
34+ */
35+ protected $ deletionService ;
36+
37+ /**
38+ * @var \Pterodactyl\Services\Mounts\MountUpdateService
39+ */
40+ protected $ updateService ;
41+
2842 /**
2943 * MountController constructor.
3044 *
3145 * @param \Prologue\Alerts\AlertsMessageBag $alert
3246 * @param \Pterodactyl\Repositories\Eloquent\MountRepository $repository
3347 * @param \Pterodactyl\Services\Mounts\MountCreationService $creationService
48+ * @param \Pterodactyl\Services\Mounts\MountDeletionService $deletionService
49+ * @param \Pterodactyl\Services\Mounts\MountUpdateService $updateService
3450 */
3551 public function __construct (
3652 AlertsMessageBag $ alert ,
3753 MountRepository $ repository ,
38- MountCreationService $ creationService
54+ MountCreationService $ creationService ,
55+ MountDeletionService $ deletionService ,
56+ MountUpdateService $ updateService
3957 ) {
4058 $ this ->alert = $ alert ;
4159 $ this ->repository = $ repository ;
4260 $ this ->creationService = $ creationService ;
61+ $ this ->deletionService = $ deletionService ;
62+ $ this ->updateService = $ updateService ;
4363 }
4464
4565 /**
@@ -82,7 +102,48 @@ public function create(MountFormRequest $request)
82102 $ mount = $ this ->creationService ->handle ($ request ->normalize ());
83103 $ this ->alert ->success ('Mount was created successfully. ' )->flash ();
84104
85- //return redirect()->route('admin.mounts.view', $mount->id);
86- return redirect ()->route ('admin.mounts ' );
105+ return redirect ()->route ('admin.mounts.view ' , $ mount ->id );
106+ }
107+
108+ /**
109+ * Handle request to update or delete location.
110+ *
111+ * @param \Pterodactyl\Http\Requests\Admin\MountFormRequest $request
112+ * @param \Pterodactyl\Models\Mount $mount
113+ * @return \Illuminate\Http\RedirectResponse
114+ *
115+ * @throws \Throwable
116+ */
117+ public function update (MountFormRequest $ request , Mount $ mount )
118+ {
119+ if ($ request ->input ('action ' ) === 'delete ' ) {
120+ return $ this ->delete ($ mount );
121+ }
122+
123+ $ this ->updateService ->handle ($ mount ->id , $ request ->normalize ());
124+ $ this ->alert ->success ('Mount was updated successfully. ' )->flash ();
125+
126+ return redirect ()->route ('admin.mounts.view ' , $ mount ->id );
127+ }
128+
129+ /**
130+ * Delete a location from the system.
131+ *
132+ * @param \Pterodactyl\Models\Mount $mount
133+ * @return \Illuminate\Http\RedirectResponse
134+ *
135+ * @throws \Exception
136+ */
137+ public function delete (Mount $ mount )
138+ {
139+ try {
140+ $ this ->deletionService ->handle ($ mount ->id );
141+
142+ return redirect ()->route ('admin.mounts ' );
143+ } catch (DisplayException $ ex ) {
144+ $ this ->alert ->danger ($ ex ->getMessage ())->flash ();
145+ }
146+
147+ return redirect ()->route ('admin.mounts.view ' , $ mount ->id );
87148 }
88149}
0 commit comments