55namespace BinarCode \RestifyBoost \Mcp \Tools ;
66
77use Generator ;
8- use Illuminate \Process \Pool ;
98use Illuminate \Support \Facades \File ;
109use Illuminate \Support \Facades \Process ;
1110use Laravel \Mcp \Server \Tool ;
@@ -58,12 +57,12 @@ public function handle(array $arguments): ToolResult|Generator
5857
5958 // Step 1: Validate environment
6059 $ validationResult = $ this ->validateEnvironment ();
61- if (!$ validationResult ['success ' ]) {
60+ if (! $ validationResult ['success ' ]) {
6261 return ToolResult::error ($ validationResult ['message ' ]);
6362 }
6463
6564 // Step 2: Check if already installed
66- if (!$ force && $ this ->isRestifyAlreadyInstalled ()) {
65+ if (! $ force && $ this ->isRestifyAlreadyInstalled ()) {
6766 return ToolResult::error (
6867 'Laravel Restify is already installed. Use "force: true" to reinstall. '
6968 );
@@ -74,14 +73,14 @@ public function handle(array $arguments): ToolResult|Generator
7473 // Step 3: Install composer package
7574 $ installResult = $ this ->installComposerPackage ();
7675 $ results [] = $ installResult ;
77- if (!$ installResult ['success ' ]) {
76+ if (! $ installResult ['success ' ]) {
7877 return ToolResult::error ($ installResult ['message ' ]);
7978 }
8079
8180 // Step 4: Run restify setup
8281 $ setupResult = $ this ->runRestifySetup ();
8382 $ results [] = $ setupResult ;
84- if (!$ setupResult ['success ' ]) {
83+ if (! $ setupResult ['success ' ]) {
8584 return ToolResult::error ($ setupResult ['message ' ]);
8685 }
8786
@@ -119,34 +118,34 @@ public function handle(array $arguments): ToolResult|Generator
119118 return $ this ->generateSuccessResponse ($ results , $ arguments );
120119
121120 } catch (\Throwable $ e ) {
122- return ToolResult::error ('Restify installation failed: ' . $ e ->getMessage ());
121+ return ToolResult::error ('Restify installation failed: ' . $ e ->getMessage ());
123122 }
124123 }
125124
126125 protected function validateEnvironment (): array
127126 {
128127 // Check if this is a Laravel project
129- if (!File::exists (base_path ('artisan ' ))) {
128+ if (! File::exists (base_path ('artisan ' ))) {
130129 return [
131130 'success ' => false ,
132- 'message ' => 'This is not a Laravel project (artisan file not found) '
131+ 'message ' => 'This is not a Laravel project (artisan file not found) ' ,
133132 ];
134133 }
135134
136135 // Check PHP version
137136 if (version_compare (PHP_VERSION , '8.0.0 ' , '< ' )) {
138137 return [
139138 'success ' => false ,
140- 'message ' => 'PHP 8.0 or higher is required. Current version: ' . PHP_VERSION
139+ 'message ' => 'PHP 8.0 or higher is required. Current version: ' . PHP_VERSION ,
141140 ];
142141 }
143142
144143 // Check if composer is available
145144 $ composerCheck = Process::run ('composer --version ' );
146- if (!$ composerCheck ->successful ()) {
145+ if (! $ composerCheck ->successful ()) {
147146 return [
148147 'success ' => false ,
149- 'message ' => 'Composer is not available or not in PATH '
148+ 'message ' => 'Composer is not available or not in PATH ' ,
150149 ];
151150 }
152151
@@ -160,7 +159,7 @@ protected function isRestifyAlreadyInstalled(): bool
160159 if (File::exists ($ composerFile )) {
161160 $ composer = json_decode (File::get ($ composerFile ), true );
162161 $ require = $ composer ['require ' ] ?? [];
163-
162+
164163 if (isset ($ require ['binaryk/laravel-restify ' ])) {
165164 return true ;
166165 }
@@ -178,26 +177,26 @@ protected function installComposerPackage(): array
178177 {
179178 try {
180179 $ result = Process::timeout (300 )->run ('composer require binaryk/laravel-restify ' );
181-
180+
182181 if ($ result ->successful ()) {
183182 return [
184183 'success ' => true ,
185184 'step ' => 'Package Installation ' ,
186- 'message ' => 'Laravel Restify package installed successfully '
185+ 'message ' => 'Laravel Restify package installed successfully ' ,
187186 ];
188187 }
189188
190189 return [
191190 'success ' => false ,
192191 'step ' => 'Package Installation ' ,
193- 'message ' => 'Failed to install Laravel Restify: ' . $ result ->errorOutput ()
192+ 'message ' => 'Failed to install Laravel Restify: ' . $ result ->errorOutput (),
194193 ];
195194
196195 } catch (\Exception $ e ) {
197196 return [
198197 'success ' => false ,
199- 'step ' => 'Package Installation ' ,
200- 'message ' => 'Composer installation failed: ' . $ e ->getMessage ()
198+ 'step ' => 'Package Installation ' ,
199+ 'message ' => 'Composer installation failed: ' . $ e ->getMessage (),
201200 ];
202201 }
203202 }
@@ -211,21 +210,21 @@ protected function runRestifySetup(): array
211210 return [
212211 'success ' => true ,
213212 'step ' => 'Restify Setup ' ,
214- 'message ' => 'Restify setup completed successfully '
213+ 'message ' => 'Restify setup completed successfully ' ,
215214 ];
216215 }
217216
218217 return [
219218 'success ' => false ,
220219 'step ' => 'Restify Setup ' ,
221- 'message ' => 'Restify setup failed: ' . $ result ->errorOutput ()
220+ 'message ' => 'Restify setup failed: ' . $ result ->errorOutput (),
222221 ];
223222
224223 } catch (\Exception $ e ) {
225224 return [
226225 'success ' => false ,
227226 'step ' => 'Restify Setup ' ,
228- 'message ' => 'Setup command failed: ' . $ e ->getMessage ()
227+ 'message ' => 'Setup command failed: ' . $ e ->getMessage (),
229228 ];
230229 }
231230 }
@@ -234,12 +233,12 @@ protected function enableSanctumAuthentication(): array
234233 {
235234 try {
236235 $ configPath = config_path ('restify.php ' );
237-
238- if (!File::exists ($ configPath )) {
236+
237+ if (! File::exists ($ configPath )) {
239238 return [
240239 'success ' => false ,
241240 'step ' => 'Sanctum Configuration ' ,
242- 'message ' => 'Restify config file not found '
241+ 'message ' => 'Restify config file not found ' ,
243242 ];
244243 }
245244
@@ -255,14 +254,14 @@ protected function enableSanctumAuthentication(): array
255254 return [
256255 'success ' => true ,
257256 'step ' => 'Sanctum Configuration ' ,
258- 'message ' => 'Sanctum authentication enabled in restify.php '
257+ 'message ' => 'Sanctum authentication enabled in restify.php ' ,
259258 ];
260259
261260 } catch (\Exception $ e ) {
262261 return [
263262 'success ' => false ,
264263 'step ' => 'Sanctum Configuration ' ,
265- 'message ' => 'Failed to enable Sanctum: ' . $ e ->getMessage ()
264+ 'message ' => 'Failed to enable Sanctum: ' . $ e ->getMessage (),
266265 ];
267266 }
268267 }
@@ -271,12 +270,12 @@ protected function configureApiPrefix(string $prefix): array
271270 {
272271 try {
273272 $ configPath = config_path ('restify.php ' );
274-
275- if (!File::exists ($ configPath )) {
273+
274+ if (! File::exists ($ configPath )) {
276275 return [
277276 'success ' => false ,
278277 'step ' => 'API Prefix Configuration ' ,
279- 'message ' => 'Restify config file not found '
278+ 'message ' => 'Restify config file not found ' ,
280279 ];
281280 }
282281
@@ -292,14 +291,14 @@ protected function configureApiPrefix(string $prefix): array
292291 return [
293292 'success ' => true ,
294293 'step ' => 'API Prefix Configuration ' ,
295- 'message ' => "API prefix updated to: {$ prefix }"
294+ 'message ' => "API prefix updated to: {$ prefix }" ,
296295 ];
297296
298297 } catch (\Exception $ e ) {
299298 return [
300299 'success ' => false ,
301300 'step ' => 'API Prefix Configuration ' ,
302- 'message ' => 'Failed to update API prefix: ' . $ e ->getMessage ()
301+ 'message ' => 'Failed to update API prefix: ' . $ e ->getMessage (),
303302 ];
304303 }
305304 }
@@ -313,21 +312,21 @@ protected function runMigrations(): array
313312 return [
314313 'success ' => true ,
315314 'step ' => 'Migrations ' ,
316- 'message ' => 'Migrations completed successfully '
315+ 'message ' => 'Migrations completed successfully ' ,
317316 ];
318317 }
319318
320319 return [
321320 'success ' => false ,
322321 'step ' => 'Migrations ' ,
323- 'message ' => 'Migration failed: ' . $ result ->errorOutput ()
322+ 'message ' => 'Migration failed: ' . $ result ->errorOutput (),
324323 ];
325324
326325 } catch (\Exception $ e ) {
327326 return [
328327 'success ' => false ,
329328 'step ' => 'Migrations ' ,
330- 'message ' => 'Migration command failed: ' . $ e ->getMessage ()
329+ 'message ' => 'Migration command failed: ' . $ e ->getMessage (),
331330 ];
332331 }
333332 }
@@ -341,21 +340,21 @@ protected function installDoctrineDbal(): array
341340 return [
342341 'success ' => true ,
343342 'step ' => 'Doctrine DBAL Installation ' ,
344- 'message ' => 'doctrine/dbal installed successfully '
343+ 'message ' => 'doctrine/dbal installed successfully ' ,
345344 ];
346345 }
347346
348347 return [
349348 'success ' => false ,
350349 'step ' => 'Doctrine DBAL Installation ' ,
351- 'message ' => 'Failed to install doctrine/dbal: ' . $ result ->errorOutput ()
350+ 'message ' => 'Failed to install doctrine/dbal: ' . $ result ->errorOutput (),
352351 ];
353352
354353 } catch (\Exception $ e ) {
355354 return [
356355 'success ' => false ,
357356 'step ' => 'Doctrine DBAL Installation ' ,
358- 'message ' => 'Doctrine DBAL installation failed: ' . $ e ->getMessage ()
357+ 'message ' => 'Doctrine DBAL installation failed: ' . $ e ->getMessage (),
359358 ];
360359 }
361360 }
@@ -369,21 +368,21 @@ protected function generateMockUsers(int $count): array
369368 return [
370369 'success ' => true ,
371370 'step ' => 'Mock Data Generation ' ,
372- 'message ' => "Generated {$ count } mock users successfully "
371+ 'message ' => "Generated {$ count } mock users successfully " ,
373372 ];
374373 }
375374
376375 return [
377376 'success ' => false ,
378377 'step ' => 'Mock Data Generation ' ,
379- 'message ' => 'Failed to generate mock users: ' . $ result ->errorOutput ()
378+ 'message ' => 'Failed to generate mock users: ' . $ result ->errorOutput (),
380379 ];
381380
382381 } catch (\Exception $ e ) {
383382 return [
384383 'success ' => false ,
385384 'step ' => 'Mock Data Generation ' ,
386- 'message ' => 'Mock data generation failed: ' . $ e ->getMessage ()
385+ 'message ' => 'Mock data generation failed: ' . $ e ->getMessage (),
387386 ];
388387 }
389388 }
@@ -397,32 +396,32 @@ protected function generateRepositoriesForModels(): array
397396 return [
398397 'success ' => true ,
399398 'step ' => 'Repository Generation ' ,
400- 'message ' => 'Repositories generated for existing models '
399+ 'message ' => 'Repositories generated for existing models ' ,
401400 ];
402401 }
403402
404403 return [
405404 'success ' => false ,
406405 'step ' => 'Repository Generation ' ,
407- 'message ' => 'Repository generation failed: ' . $ result ->errorOutput ()
406+ 'message ' => 'Repository generation failed: ' . $ result ->errorOutput (),
408407 ];
409408
410409 } catch (\Exception $ e ) {
411410 return [
412411 'success ' => false ,
413412 'step ' => 'Repository Generation ' ,
414- 'message ' => 'Repository generation failed: ' . $ e ->getMessage ()
413+ 'message ' => 'Repository generation failed: ' . $ e ->getMessage (),
415414 ];
416415 }
417416 }
418417
419418 protected function generateSuccessResponse (array $ results , array $ arguments ): ToolResult
420419 {
421420 $ response = "# Laravel Restify Installation Complete! 🎉 \n\n" ;
422-
421+
423422 // Installation summary
424423 $ response .= "## Installation Summary \n\n" ;
425-
424+
426425 foreach ($ results as $ result ) {
427426 if (isset ($ result ['step ' ])) {
428427 $ icon = $ result ['success ' ] ? '✅ ' : '❌ ' ;
@@ -432,12 +431,12 @@ protected function generateSuccessResponse(array $results, array $arguments): To
432431
433432 // Configuration summary
434433 $ response .= "\n## Configuration Applied \n\n" ;
435-
434+
436435 if ($ arguments ['enable_sanctum_auth ' ] ?? false ) {
437436 $ response .= "✅ **Sanctum Authentication:** Enabled \n" ;
438437 }
439438
440- if (!empty ($ arguments ['api_prefix ' ])) {
439+ if (! empty ($ arguments ['api_prefix ' ])) {
441440 $ response .= "✅ **API Prefix:** ` {$ arguments ['api_prefix ' ]}` \n" ;
442441 } else {
443442 $ response .= "ℹ️ **API Prefix:** `/api/restify` (default) \n" ;
@@ -511,4 +510,4 @@ protected function generateSuccessResponse(array $results, array $arguments): To
511510
512511 return ToolResult::text ($ response );
513512 }
514- }
513+ }
0 commit comments