2
2
3
3
namespace Phpsa \LaravelApiController \Generator ;
4
4
5
- use Symfony \Component \Console \Input \InputOption ;
6
5
use Illuminate \Routing \Console \ControllerMakeCommand ;
7
6
use Illuminate \Support \Str ;
7
+ use Symfony \Component \Console \Input \InputOption ;
8
8
9
9
class ApiControllerMakeCommand extends ControllerMakeCommand
10
10
{
11
-
12
11
/**
13
12
* The console command name.
14
13
*
@@ -31,35 +30,33 @@ class ApiControllerMakeCommand extends ControllerMakeCommand
31
30
'resourceCollection ' => null ,
32
31
];
33
32
34
-
35
33
public function handle ()
36
34
{
37
-
38
35
$ this ->setRawName ();
39
36
40
37
if (empty ($ this ->option ('model ' ))) {
41
38
$ this ->input ->setOption ('model ' , $ this ->ask ('For which model? ' , $ this ->customClasses ['rawName ' ]));
42
39
}
43
40
44
- $ this ->customClasses ['request ' ] = $ this ->option ('request ' ) ?: $ this ->confirm (" Add Custom Request? " );
41
+ $ this ->customClasses ['request ' ] = $ this ->option ('request ' ) ?: $ this ->confirm (' Add Custom Request? ' );
45
42
46
- if ($ this ->confirm (" Add Custom Resource & Collection? " )) {
43
+ if ($ this ->confirm (' Add Custom Resource & Collection? ' )) {
47
44
$ this ->customClasses ['resources ' ] = true ;
48
- $ this ->customClasses ['resourceSingle ' ] = $ this ->customClasses ['rawName ' ] . 'Resource ' ;
49
- $ this ->customClasses ['resourceCollection ' ] = $ this ->customClasses ['rawName ' ] . 'ResourceCollection ' ;
45
+ $ this ->customClasses ['resourceSingle ' ] = $ this ->customClasses ['rawName ' ]. 'Resource ' ;
46
+ $ this ->customClasses ['resourceCollection ' ] = $ this ->customClasses ['rawName ' ]. 'ResourceCollection ' ;
50
47
}
51
48
52
49
$ this ->confirmModelExists ();
53
50
54
51
parent ::handle ();
55
52
56
- if ($ this ->confirm (" Add Feature Test? " )) {
53
+ if ($ this ->confirm (' Add Feature Test? ' )) {
57
54
$ this ->call ('make:test ' , ['name ' => $ this ->customClasses ['rawName ' ].'Test ' ]);
58
55
}
59
56
60
57
$ this ->addRoutes ();
61
58
62
- $ this ->info (" Complete " );
59
+ $ this ->info (' Complete ' );
63
60
}
64
61
65
62
protected function setRawName ()
@@ -68,26 +65,22 @@ protected function setRawName()
68
65
$ this ->customClasses ['rawName ' ] = class_basename ($ name );
69
66
}
70
67
71
-
72
-
73
68
protected function getRequestClass (): string
74
69
{
75
70
return $ this ->customClasses ['request ' ] === false ? '\\Illuminate \\Http \\Request ' : $ this ->makeRequestClass ();
76
71
}
77
72
78
-
79
73
protected function makeRequestClass ()
80
74
{
81
- $ class = $ this ->customClasses ['rawName ' ] . 'Request ' ;
75
+ $ class = $ this ->customClasses ['rawName ' ]. 'Request ' ;
82
76
83
77
$ this ->call ('make:request ' , [
84
- 'name ' => $ class
78
+ 'name ' => $ class,
85
79
]);
86
80
87
- return 'App \\Http \\Requests \\' . $ class ;
81
+ return 'App \\Http \\Requests \\' . $ class ;
88
82
}
89
83
90
-
91
84
protected function confirmModelExists ()
92
85
{
93
86
$ modelClass = $ this ->parseModel ($ this ->option ('model ' ));
@@ -96,6 +89,7 @@ protected function confirmModelExists()
96
89
if ($ this ->confirm ("A {$ modelClass } model does not exist!! Do you want to generate it? " , true )) {
97
90
$ this ->call ('make:api:model ' , ['name ' => $ modelClass ]);
98
91
}
92
+
99
93
return ;
100
94
}
101
95
@@ -106,10 +100,10 @@ protected function confirmModelPolicyExists()
106
100
{
107
101
$ modelClass = $ this ->parseModel ($ this ->option ('model ' ));
108
102
$ model = class_basename ($ modelClass );
109
- $ policyClass = rtrim ($ modelClass , $ model ) . 'Policies \\' . $ model . 'Policy ' ;
103
+ $ policyClass = rtrim ($ modelClass , $ model ). 'Policies \\' . $ model. 'Policy ' ;
110
104
if (! class_exists ($ policyClass )) {
111
105
if ($ this ->confirm ("A {$ policyClass } Policy does not exist. Do you want to generate it? " , true )) {
112
- $ this ->call ('make:api:policy ' , ['name ' => $ policyClass , '--model ' => '\\' . $ modelClass ]);
106
+ $ this ->call ('make:api:policy ' , ['name ' => $ policyClass , '--model ' => '\\' . $ modelClass ]);
113
107
}
114
108
}
115
109
}
@@ -135,15 +129,14 @@ protected function buildModelReplacements(array $replace)
135
129
'{{useResourceCollection}} ' => $ useResourceCollection ,
136
130
'{{ useResourceSingle }} ' => $ useResourceSingle ,
137
131
'{{ useResourceCollection }} ' => $ useResourceCollection ,
138
- '{{resourceSingle}} ' => $ this ->customClasses ['resourceSingle ' ] ? 'protected $resourceSingle = ' . $ this ->customClasses ['resourceSingle ' ] . '; ' : null ,
139
- '{{resourceCollection}} ' => $ this ->customClasses ['resourceCollection ' ] ? 'protected $resourceCollection = ' . $ this ->customClasses ['resourceCollection ' ] . '; ' : null ,
140
- '{{ resourceSingle }} ' => $ this ->customClasses ['resourceSingle ' ] ? 'protected $resourceSingle = ' . $ this ->customClasses ['resourceSingle ' ] . "\n" : null ,
141
- '{{ resourceCollection }} ' => $ this ->customClasses ['resourceCollection ' ] ? 'protected $resourceCollection = ' . $ this ->customClasses ['resourceCollection ' ] . '; ' : null ,
132
+ '{{resourceSingle}} ' => $ this ->customClasses ['resourceSingle ' ] ? 'protected $resourceSingle = ' . $ this ->customClasses ['resourceSingle ' ]. '; ' : null ,
133
+ '{{resourceCollection}} ' => $ this ->customClasses ['resourceCollection ' ] ? 'protected $resourceCollection = ' . $ this ->customClasses ['resourceCollection ' ]. '; ' : null ,
134
+ '{{ resourceSingle }} ' => $ this ->customClasses ['resourceSingle ' ] ? 'protected $resourceSingle = ' . $ this ->customClasses ['resourceSingle ' ]. "\n" : null ,
135
+ '{{ resourceCollection }} ' => $ this ->customClasses ['resourceCollection ' ] ? 'protected $resourceCollection = ' . $ this ->customClasses ['resourceCollection ' ]. '; ' : null ,
142
136
143
137
]);
144
138
}
145
139
146
-
147
140
protected function getUseResourceSingle ()
148
141
{
149
142
if (! $ this ->customClasses ['resources ' ]) {
@@ -152,7 +145,7 @@ protected function getUseResourceSingle()
152
145
153
146
$ this ->call ('make:api:resource ' , ['name ' => $ this ->customClasses ['resourceSingle ' ]]);
154
147
155
- return 'use App\Http \\Resources \\' . $ this ->customClasses ['resourceSingle ' ] . '; ' ;
148
+ return 'use App\Http \\Resources \\' . $ this ->customClasses ['resourceSingle ' ]. '; ' ;
156
149
}
157
150
158
151
protected function getUseResourceCollection ()
@@ -163,10 +156,9 @@ protected function getUseResourceCollection()
163
156
164
157
$ this ->call ('make:api:resource ' , ['name ' => $ this ->customClasses ['resourceCollection ' ]]);
165
158
166
- return 'use App\Http \\Resources \\' . $ this ->customClasses ['resourceCollection ' ] . '; ' ;
159
+ return 'use App\Http \\Resources \\' . $ this ->customClasses ['resourceCollection ' ]. '; ' ;
167
160
}
168
161
169
-
170
162
protected function getStub ()
171
163
{
172
164
$ stub = 'controller.api.stub ' ;
@@ -186,9 +178,9 @@ protected function getStub()
186
178
*/
187
179
protected function resolveStubPath ($ stub )
188
180
{
189
- return file_exists ($ customPath = $ this ->laravel ->basePath ('api/ ' . trim ($ stub , '/ ' )))
181
+ return file_exists ($ customPath = $ this ->laravel ->basePath ('api/ ' . trim ($ stub , '/ ' )))
190
182
? $ customPath
191
- : __DIR__ . '/stubs/ ' . $ stub ;
183
+ : __DIR__ . '/stubs/ ' . $ stub ;
192
184
}
193
185
194
186
/**
@@ -199,10 +191,9 @@ protected function resolveStubPath($stub)
199
191
*/
200
192
protected function getDefaultNamespace ($ rootNamespace )
201
193
{
202
- return $ rootNamespace . '\Http\Controllers\Api ' ;
194
+ return $ rootNamespace. '\Http\Controllers\Api ' ;
203
195
}
204
196
205
-
206
197
/**
207
198
* Get the console command options.
208
199
*
@@ -218,7 +209,6 @@ protected function getOptions()
218
209
];
219
210
}
220
211
221
-
222
212
protected function addRoutes ()
223
213
{
224
214
$ stub = $ this ->resolveStubPath ('route.stub ' );
@@ -228,7 +218,7 @@ protected function addRoutes()
228
218
229
219
$ replacements = [
230
220
'{{route.name}} ' => strtolower (Str::plural ($ this ->customClasses ['rawName ' ])),
231
- '{{route.controller}} ' => "\\" . $ name . " ::class "
221
+ '{{route.controller}} ' => '\\' . $ name. ' ::class ' ,
232
222
];
233
223
234
224
$ stub = $ this ->files ->get ($ stub );
@@ -243,8 +233,9 @@ protected function addRoutes()
243
233
$ lines = file ($ routesFile );
244
234
245
235
if (! $ lines ) {
246
- $ this ->error ("could not read routes file, add the following toyour routes file: " );
247
- $ this ->info ("\n" . $ stub . "\n" );
236
+ $ this ->error ('could not read routes file, add the following toyour routes file: ' );
237
+ $ this ->info ("\n" .$ stub ."\n" );
238
+
248
239
return false ;
249
240
}
250
241
@@ -260,8 +251,8 @@ protected function addRoutes()
260
251
$ fileResource = fopen ($ routesFile , 'w ' );
261
252
262
253
if (! is_resource ($ fileResource )) {
263
- $ this ->error (" could not read routes file, add the following toyour routes file: " );
264
- $ this ->info ("\n" . $ stub . "\n" );
254
+ $ this ->error (' could not read routes file, add the following toyour routes file: ' );
255
+ $ this ->info ("\n" . $ stub. "\n" );
265
256
266
257
return false ;
267
258
}
0 commit comments