Skip to content

Commit d6f68ae

Browse files
committed
feat: update core stubs to handle it by manager
1 parent 7191bdf commit d6f68ae

13 files changed

Lines changed: 149 additions & 38 deletions

src/Commands/ModuleCommand.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,38 +50,38 @@ protected function createBaseModel(): void
5050
protected function createControllers(): void
5151
{
5252
// requests
53-
$filePath = $this->targetPath . '/Requests/Store' . $this->model . 'Request.php';
53+
$filePath = $this->targetPath . '/Requests/StoreRequest.php';
5454
$this->createFileFromStub('request', $filePath);
5555

56-
$filePath = $this->targetPath . '/Requests/Update' . $this->model . 'Request.php';
56+
$filePath = $this->targetPath . '/Requests/UpdateRequest.php';
5757
$this->createFileFromStub('request', $filePath);
5858

5959
// resources
6060
$filePath = $this->targetPath . '/Resources/' . $this->model . 'Resource.php';
6161
$this->createFileFromStub('resource', $filePath);
6262

6363
// controllers
64-
$filePath = $this->targetPath . '/Controllers/Index' . $this->model . 'Controller.php';
65-
$this->createFileFromStub('controller', $filePath);
64+
$filePath = $this->targetPath . '/Controllers/IndexController.php';
65+
$this->createFileFromStub('index.controller', $filePath);
6666

67-
$filePath = $this->targetPath . '/Controllers/Show' . $this->model . 'Controller.php';
67+
$filePath = $this->targetPath . '/Controllers/ShowController.php';
6868
$this->createFileFromStub('controller', $filePath);
6969

70-
$filePath = $this->targetPath . '/Controllers/Update' . $this->model . 'Controller.php';
70+
$filePath = $this->targetPath . '/Controllers/UpdateController.php';
7171
$this->createFileFromStub('controller', $filePath);
7272

73-
$filePath = $this->targetPath . '/Controllers/Store' . $this->model . 'Controller.php';
73+
$filePath = $this->targetPath . '/Controllers/StoreController.php';
7474
$this->createFileFromStub('controller', $filePath);
7575

76-
$filePath = $this->targetPath . '/Controllers/Destroy' . $this->model . 'Controller.php';
76+
$filePath = $this->targetPath . '/Controllers/DestroyController.php';
7777
$this->createFileFromStub('controller', $filePath);
7878
}
7979

8080
protected function createFileFromStub(string $type, string $filePath): void
8181
{
8282
$template = str_replace(
8383
['{{ namespace }}', '{{ class }}'],
84-
["Modules\\$this->namespace\\" . ucfirst(Str::plural($type)), $this->model],
84+
[$this->namespace, $this->model],
8585
$this->getStub($type)
8686
);
8787

src/Stubs/controller.stub

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/Stubs/destroy.controller.stub

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Modules\{{ namespace }}\Controllers;
6+
7+
use App\Http\Controllers\Controller;
8+
use Illuminate\Http\JsonResponse;
9+
use Modules\{{ namespace }}\{{ class }};
10+
11+
class DestroyController extends Controller
12+
{
13+
public function __invoke({{ class }} ${{ strtolower(class) }}): JsonResponse
14+
{
15+
return $this->success(${{ strtolower(class) }}->delete());
16+
}
17+
}

src/Stubs/factory.stub

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace {{ namespace }};
5+
namespace Modules\{{ namespace }};
66

77
use Database\Factories\BaseFactory;
88

src/Stubs/index.controller.stub

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Modules\{{ namespace }}\Controllers;
6+
7+
use App\Http\Controllers\Controller;
8+
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
9+
use Modules\{{ namespace }}\{{ class }};
10+
use Modules\{{ namespace }}\Resources\{{ class }}Resource;
11+
12+
class IndexController extends Controller
13+
{
14+
public function __invoke(): AnonymousResourceCollection
15+
{
16+
return {{ class }}Resource::collection(
17+
resource: {{ class }}::query()->paginate(request('ppt', 10))
18+
);
19+
}
20+
}

src/Stubs/model.stub

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
declare(strict_types=1);
44

5-
namespace {{ namespace }};
5+
namespace Modules\{{ namespace }};
66

77
use Carbon\CarbonInterface;
88
use Illuminate\Database\Eloquent\Factories\HasFactory;
99
use Illuminate\Database\Eloquent\Model;
10+
use Shared\Filters\QueryFilter;
1011

1112
/**
1213
* Model
@@ -19,10 +20,11 @@ use Illuminate\Database\Eloquent\Model;
1920
class {{ class }} extends Model
2021
{
2122
use HasFactory;
23+
use QueryFilter;
2224

2325
public $guarded = [];
2426

25-
public static function newFactory(): UserFactory
27+
public static function newFactory(): {{ class }}Factory
2628
{
2729
return {{ class }}Factory::new();
2830
}

src/Stubs/request.stub

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
declare(strict_types=1);
44

5-
namespace {{ namespace }};
5+
namespace Modules\{{ namespace }}\Requests;
66

77
use Illuminate\Foundation\Http\FormRequest;
88

9-
class {{ class }}Request extends FormRequest
9+
class StoreRequest extends FormRequest
1010
{
1111
public function authorize(): bool
1212
{
13-
return true;
13+
return auth()->check();
1414
}
1515

1616
public function rules(): array

src/Stubs/resource.stub

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,22 @@
22

33
declare(strict_types=1);
44

5-
namespace {{ namespace }};
5+
namespace Modules\{{ namespace }}\Resources;
66

77
use Illuminate\Http\Request;
88
use Illuminate\Http\Resources\Json\JsonResource;
99

1010
/**
11-
* @property int $id
11+
* @property int $id
12+
* @property string $name
1213
*/
1314
class {{ class }}Resource extends JsonResource
1415
{
1516
public function toArray(Request $request): array
1617
{
1718
return [
1819
"id" => $this->id,
20+
"name" => $this->name
1921
];
2022
}
2123
}

src/Stubs/service.stub

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace {{ namespace }};
5+
namespace Modules\{{ namespace }};
66

77
class {{ class }}Service
88
{

src/Stubs/show.controller.stub

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Modules\{{ namespace }}\Controllers;
6+
7+
use App\Http\Controllers\Controller;
8+
use Illuminate\Http\JsonResponse;
9+
use Modules\{{ namespace }}\{{ class }};
10+
use Modules\{{ namespace }}\Resources\{{ class }}Resource;
11+
12+
class ShowController extends Controller
13+
{
14+
public function __invoke({{ class }} ${{ strtolower(class) }}): JsonResponse
15+
{
16+
return response(new {{ class }}Resource(${{ strtolower(class) }});
17+
}
18+
}

0 commit comments

Comments
 (0)