Skip to content

Commit 15a8afe

Browse files
committed
Merge branch 'feature/improved_cli_tools' of https://github.com/phpsa/laravel-api-controller into feature/improved_cli_tools
2 parents a0e8d3a + fdf403e commit 15a8afe

File tree

4 files changed

+38
-61
lines changed

4 files changed

+38
-61
lines changed

src/Generator/ApiControllerMakeCommand.php

Lines changed: 28 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
namespace Phpsa\LaravelApiController\Generator;
44

5-
use Symfony\Component\Console\Input\InputOption;
65
use Illuminate\Routing\Console\ControllerMakeCommand;
76
use Illuminate\Support\Str;
7+
use Symfony\Component\Console\Input\InputOption;
88

99
class ApiControllerMakeCommand extends ControllerMakeCommand
1010
{
11-
1211
/**
1312
* The console command name.
1413
*
@@ -31,35 +30,33 @@ class ApiControllerMakeCommand extends ControllerMakeCommand
3130
'resourceCollection' => null,
3231
];
3332

34-
3533
public function handle()
3634
{
37-
3835
$this->setRawName();
3936

4037
if (empty($this->option('model'))) {
4138
$this->input->setOption('model', $this->ask('For which model?', $this->customClasses['rawName']));
4239
}
4340

44-
$this->customClasses['request'] = $this->option('request') ?: $this->confirm("Add Custom Request?");
41+
$this->customClasses['request'] = $this->option('request') ?: $this->confirm('Add Custom Request?');
4542

46-
if ($this->confirm("Add Custom Resource & Collection?")) {
43+
if ($this->confirm('Add Custom Resource & Collection?')) {
4744
$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';
5047
}
5148

5249
$this->confirmModelExists();
5350

5451
parent::handle();
5552

56-
if ($this->confirm("Add Feature Test?")) {
53+
if ($this->confirm('Add Feature Test?')) {
5754
$this->call('make:test', ['name' => $this->customClasses['rawName'].'Test']);
5855
}
5956

6057
$this->addRoutes();
6158

62-
$this->info("Complete");
59+
$this->info('Complete');
6360
}
6461

6562
protected function setRawName()
@@ -68,26 +65,22 @@ protected function setRawName()
6865
$this->customClasses['rawName'] = class_basename($name);
6966
}
7067

71-
72-
7368
protected function getRequestClass(): string
7469
{
7570
return $this->customClasses['request'] === false ? '\\Illuminate\\Http\\Request' : $this->makeRequestClass();
7671
}
7772

78-
7973
protected function makeRequestClass()
8074
{
81-
$class = $this->customClasses['rawName'] . 'Request';
75+
$class = $this->customClasses['rawName'].'Request';
8276

8377
$this->call('make:request', [
84-
'name' => $class
78+
'name' => $class,
8579
]);
8680

87-
return 'App\\Http\\Requests\\' . $class;
81+
return 'App\\Http\\Requests\\'.$class;
8882
}
8983

90-
9184
protected function confirmModelExists()
9285
{
9386
$modelClass = $this->parseModel($this->option('model'));
@@ -96,6 +89,7 @@ protected function confirmModelExists()
9689
if ($this->confirm("A {$modelClass} model does not exist!! Do you want to generate it?", true)) {
9790
$this->call('make:api:model', ['name' => $modelClass]);
9891
}
92+
9993
return;
10094
}
10195

@@ -106,10 +100,10 @@ protected function confirmModelPolicyExists()
106100
{
107101
$modelClass = $this->parseModel($this->option('model'));
108102
$model = class_basename($modelClass);
109-
$policyClass = rtrim($modelClass, $model) . 'Policies\\' . $model . 'Policy';
103+
$policyClass = rtrim($modelClass, $model).'Policies\\'.$model.'Policy';
110104
if (! class_exists($policyClass)) {
111105
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]);
113107
}
114108
}
115109
}
@@ -135,15 +129,14 @@ protected function buildModelReplacements(array $replace)
135129
'{{useResourceCollection}}' => $useResourceCollection,
136130
'{{ useResourceSingle }}' => $useResourceSingle,
137131
'{{ 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,
142136

143137
]);
144138
}
145139

146-
147140
protected function getUseResourceSingle()
148141
{
149142
if (! $this->customClasses['resources']) {
@@ -152,7 +145,7 @@ protected function getUseResourceSingle()
152145

153146
$this->call('make:api:resource', ['name' => $this->customClasses['resourceSingle']]);
154147

155-
return 'use App\Http\\Resources\\' . $this->customClasses['resourceSingle'] . ';';
148+
return 'use App\Http\\Resources\\'.$this->customClasses['resourceSingle'].';';
156149
}
157150

158151
protected function getUseResourceCollection()
@@ -163,10 +156,9 @@ protected function getUseResourceCollection()
163156

164157
$this->call('make:api:resource', ['name' => $this->customClasses['resourceCollection']]);
165158

166-
return 'use App\Http\\Resources\\' . $this->customClasses['resourceCollection'] . ';';
159+
return 'use App\Http\\Resources\\'.$this->customClasses['resourceCollection'].';';
167160
}
168161

169-
170162
protected function getStub()
171163
{
172164
$stub = 'controller.api.stub';
@@ -186,9 +178,9 @@ protected function getStub()
186178
*/
187179
protected function resolveStubPath($stub)
188180
{
189-
return file_exists($customPath = $this->laravel->basePath('api/' . trim($stub, '/')))
181+
return file_exists($customPath = $this->laravel->basePath('api/'.trim($stub, '/')))
190182
? $customPath
191-
: __DIR__ . '/stubs/' . $stub;
183+
: __DIR__.'/stubs/'.$stub;
192184
}
193185

194186
/**
@@ -199,10 +191,9 @@ protected function resolveStubPath($stub)
199191
*/
200192
protected function getDefaultNamespace($rootNamespace)
201193
{
202-
return $rootNamespace . '\Http\Controllers\Api';
194+
return $rootNamespace.'\Http\Controllers\Api';
203195
}
204196

205-
206197
/**
207198
* Get the console command options.
208199
*
@@ -218,7 +209,6 @@ protected function getOptions()
218209
];
219210
}
220211

221-
222212
protected function addRoutes()
223213
{
224214
$stub = $this->resolveStubPath('route.stub');
@@ -228,7 +218,7 @@ protected function addRoutes()
228218

229219
$replacements = [
230220
'{{route.name}}' => strtolower(Str::plural($this->customClasses['rawName'])),
231-
'{{route.controller}}' => "\\" . $name . "::class"
221+
'{{route.controller}}' => '\\'.$name.'::class',
232222
];
233223

234224
$stub = $this->files->get($stub);
@@ -243,8 +233,9 @@ protected function addRoutes()
243233
$lines = file($routesFile);
244234

245235
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+
248239
return false;
249240
}
250241

@@ -260,8 +251,8 @@ protected function addRoutes()
260251
$fileResource = fopen($routesFile, 'w');
261252

262253
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");
265256

266257
return false;
267258
}

src/Generator/ApiModelMakeCommand.php

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,24 @@
22

33
namespace Phpsa\LaravelApiController\Generator;
44

5-
use Illuminate\Support\Str;
65
use Illuminate\Console\GeneratorCommand;
7-
use Symfony\Component\Console\Input\InputOption;
86
use Illuminate\Foundation\Console\ModelMakeCommand as Command;
7+
use Illuminate\Support\Str;
8+
use Symfony\Component\Console\Input\InputOption;
99

1010
class ApiModelMakeCommand extends Command
1111
{
12-
1312
/**
1413
* The console command name.
1514
*
1615
* @var string
1716
*/
1817
protected $name = 'make:api:model';
1918

20-
protected $type = 'Model';
21-
19+
protected $type = 'Model';
2220

2321
public function handle()
2422
{
25-
2623
if (GeneratorCommand::handle() === false && ! $this->option('force')) {
2724
return false;
2825
}
@@ -42,10 +39,9 @@ public function handle()
4239
if ($this->confirm('Do you wish to generate a policy?')) {
4340
$this->createPolicy();
4441
}
45-
4642
}
4743

48-
/**
44+
/**
4945
* Create a migration file for the model.
5046
*
5147
* @return void
@@ -54,7 +50,6 @@ protected function createMigration()
5450
{
5551
$table = Str::snake(Str::pluralStudly(class_basename($this->argument('name'))));
5652

57-
5853
$this->call('make:migration', [
5954
'name' => "create_{$table}_table",
6055
'--create' => $table,
@@ -68,20 +63,17 @@ protected function createMigration()
6863
*/
6964
protected function createPolicy()
7065
{
71-
7266
$name = Str::studly(class_basename($this->getNameInput()));
7367
$modelName = ($this->qualifyClass($this->getNameInput()));
74-
$policy = rtrim($modelName, $name) . 'Policies\\' . $name;
75-
68+
$policy = rtrim($modelName, $name).'Policies\\'.$name;
7669

7770
$this->call('make:api:policy', [
7871
'name' => "{$policy}Policy",
79-
'--model' => $modelName
72+
'--model' => $modelName,
8073
]);
8174
}
8275

83-
84-
/**
76+
/**
8577
* Get the stub file for the generator.
8678
*
8779
* @return string
@@ -104,7 +96,7 @@ protected function resolveStubPath($stub)
10496
: __DIR__.$stub;
10597
}
10698

107-
protected function getOptions()
99+
protected function getOptions()
108100
{
109101
return [
110102
['force', null, InputOption::VALUE_NONE, 'Create the class even if the model already exists'],

src/Generator/ApiPolicyMakeCommand.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,18 @@
22

33
namespace Phpsa\LaravelApiController\Generator;
44

5-
use Illuminate\Support\Str;
6-
use Illuminate\Console\GeneratorCommand;
7-
use Symfony\Component\Console\Input\InputOption;
85
use Illuminate\Foundation\Console\PolicyMakeCommand as Command;
96

107
class ApiPolicyMakeCommand extends Command
118
{
12-
139
/**
1410
* The console command name.
1511
*
1612
* @var string
1713
*/
1814
protected $name = 'make:api:policy';
1915

20-
/**
16+
/**
2117
* Resolve the fully-qualified path to the stub.
2218
*
2319
* @param string $stub
@@ -29,5 +25,4 @@ protected function resolveStubPath($stub)
2925
? $customPath
3026
: __DIR__.$stub;
3127
}
32-
3328
}

src/ServiceProvider.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44

55
use Illuminate\Support\ServiceProvider as BaseServiceProvider;
66
use Phpsa\LaravelApiController\Generator\ApiControllerMakeCommand;
7-
use Phpsa\LaravelApiController\Generator\ApiMakeCommand;
87
use Phpsa\LaravelApiController\Generator\ApiModelMakeCommand;
98
use Phpsa\LaravelApiController\Generator\ApiPolicyMakeCommand;
109
use Phpsa\LaravelApiController\Generator\ApiResourceMakeCommand;
1110

1211
class ServiceProvider extends BaseServiceProvider
1312
{
14-
protected const CONFIG_PATH = __DIR__ . '/../config/laravel-api-controller.php';
13+
protected const CONFIG_PATH = __DIR__.'/../config/laravel-api-controller.php';
1514

1615
public function boot()
1716
{

0 commit comments

Comments
 (0)