2626namespace Pterodactyl \Http \Controllers \Base ;
2727
2828use Illuminate \Http \Request ;
29- use Pterodactyl \Models \APIKey ;
3029use Prologue \Alerts \AlertsMessageBag ;
3130use Pterodactyl \Models \APIPermission ;
3231use Pterodactyl \Services \ApiKeyService ;
3332use Pterodactyl \Http \Controllers \Controller ;
3433use Pterodactyl \Http \Requests \ApiKeyRequest ;
34+ use Pterodactyl \Exceptions \Repository \RecordNotFoundException ;
35+ use Pterodactyl \Contracts \Repository \ApiKeyRepositoryInterface ;
3536
3637class APIController extends Controller
3738{
@@ -41,9 +42,9 @@ class APIController extends Controller
4142 protected $ alert ;
4243
4344 /**
44- * @var \Pterodactyl\Models\APIKey
45+ * @var \Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface
4546 */
46- protected $ model ;
47+ protected $ repository ;
4748
4849 /**
4950 * @var \Pterodactyl\Services\ApiKeyService
@@ -53,13 +54,17 @@ class APIController extends Controller
5354 /**
5455 * APIController constructor.
5556 *
56- * @param \Prologue\Alerts\AlertsMessageBag $alert
57- * @param \Pterodactyl\Services\ApiKeyService $service
57+ * @param \Prologue\Alerts\AlertsMessageBag $alert
58+ * @param \Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface $repository
59+ * @param \Pterodactyl\Services\ApiKeyService $service
5860 */
59- public function __construct (AlertsMessageBag $ alert , ApiKeyService $ service , APIKey $ model )
60- {
61+ public function __construct (
62+ AlertsMessageBag $ alert ,
63+ ApiKeyRepositoryInterface $ repository ,
64+ ApiKeyService $ service
65+ ) {
6166 $ this ->alert = $ alert ;
62- $ this ->model = $ model ;
67+ $ this ->repository = $ repository ;
6368 $ this ->service = $ service ;
6469 }
6570
@@ -72,7 +77,7 @@ public function __construct(AlertsMessageBag $alert, ApiKeyService $service, API
7277 public function index (Request $ request )
7378 {
7479 return view ('base.api.index ' , [
75- 'keys ' => APIKey:: where ( 'user_id ' , $ request ->user ()->id )-> get ( ),
80+ 'keys ' => $ this -> repository -> findWhere ([[ 'user_id ' , ' = ' , $ request ->user ()->id ]] ),
7681 ]);
7782 }
7883
@@ -85,8 +90,8 @@ public function create()
8590 {
8691 return view ('base.api.new ' , [
8792 'permissions ' => [
88- 'user ' => collect (APIPermission::PERMISSIONS )->pull ('_user ' ),
89- 'admin ' => collect (APIPermission::PERMISSIONS )->except ('_user ' )->toArray (),
93+ 'user ' => collect (APIPermission::CONST_PERMISSIONS )->pull ('_user ' ),
94+ 'admin ' => collect (APIPermission::CONST_PERMISSIONS )->except ('_user ' )->toArray (),
9095 ],
9196 ]);
9297 }
@@ -113,7 +118,11 @@ public function store(ApiKeyRequest $request)
113118 'memo ' => $ request ->input ('memo ' ),
114119 ], $ request ->input ('permissions ' ) ?? [], $ adminPermissions );
115120
116- $ this ->alert ->success ('An API Key-Pair has successfully been generated. The API secret for this public key is shown below and will not be shown again.<br /><br /><code> ' . $ secret . '</code> ' )->flash ();
121+ $ this ->alert ->success (
122+ "An API Key-Pair has successfully been generated. The API secret
123+ for this public key is shown below and will not be shown again.
124+ <br /><br /><code> {$ secret }</code> "
125+ )->flash ();
117126
118127 return redirect ()->route ('account.api ' );
119128 }
@@ -127,12 +136,16 @@ public function store(ApiKeyRequest $request)
127136 */
128137 public function revoke (Request $ request , $ key )
129138 {
130- $ key = $ this ->model ->newQuery ()
131- ->where ('user_id ' , $ request ->user ()->id )
132- ->where ('public ' , $ key )
133- ->firstOrFail ();
139+ try {
140+ $ key = $ this ->repository ->withColumns ('id ' )->findFirstWhere ([
141+ ['user_id ' , '= ' , $ request ->user ()->id ],
142+ ['public ' , $ key ],
143+ ]);
134144
135- $ this ->service ->revoke ($ key );
145+ $ this ->service ->revoke ($ key ->id );
146+ } catch (RecordNotFoundException $ ex ) {
147+ return abort (404 );
148+ }
136149
137150 return response ('' , 204 );
138151 }
0 commit comments