diff --git a/src/Generators/ControllerGenerator.php b/src/Generators/ControllerGenerator.php index fd0f97ab..945ba852 100644 --- a/src/Generators/ControllerGenerator.php +++ b/src/Generators/ControllerGenerator.php @@ -17,7 +17,6 @@ public function generate(): void "Cannot create {$this->model}Controller cause {$this->model}Controller already exists.", "Remove {$this->model}Controller.", ); - } if (!$this->classExists('services', "{$this->model}Service")) { @@ -45,7 +44,7 @@ protected function getControllerContent($model): string { return $this->getStub('controller', [ 'entity' => $model, - 'requestsFolder' => $this->getPluralName($model), + 'requestsFolder' => $model, 'namespace' => $this->getOrCreateNamespace('controllers'), 'requestsNamespace' => $this->getOrCreateNamespace('requests'), 'resourcesNamespace' => $this->getOrCreateNamespace('resources'), diff --git a/src/Generators/RequestsGenerator.php b/src/Generators/RequestsGenerator.php index 702eba5c..1c3d30de 100644 --- a/src/Generators/RequestsGenerator.php +++ b/src/Generators/RequestsGenerator.php @@ -67,7 +67,7 @@ public function generate(): void protected function createRequest($method, $needToValidate = true, $parameters = []): void { - $requestsFolder = $this->getPluralName($this->model); + $requestsFolder = $this->model; $modelName = $this->getEntityName($method); $content = $this->getStub('request', [ diff --git a/src/Generators/ResourceGenerator.php b/src/Generators/ResourceGenerator.php index 6a369781..6e509fc9 100644 --- a/src/Generators/ResourceGenerator.php +++ b/src/Generators/ResourceGenerator.php @@ -36,7 +36,7 @@ public function generateCollectionResource(): void 'namespace' => $this->getOrCreateNamespace('resources') ]); - $this->saveClass('resources', "{$pluralName}CollectionResource", $collectionResourceContent); + $this->saveClass('resources', "{$pluralName}CollectionResource", $collectionResourceContent, $this->model); event(new SuccessCreateMessage("Created a new CollectionResource: {$pluralName}CollectionResource")); } @@ -57,8 +57,8 @@ public function generateResource(): void 'model_namespace' => $this->getOrCreateNamespace('models'), ]); - $this->saveClass('resources', "{$this->model}Resource", $resourceContent); + $this->saveClass('resources', "{$this->model}Resource", $resourceContent, $this->model); event(new SuccessCreateMessage("Created a new Resource: {$this->model}Resource")); } -} \ No newline at end of file +} diff --git a/stubs/collection_resource.blade.php b/stubs/collection_resource.blade.php index 0996813b..79c29639 100644 --- a/stubs/collection_resource.blade.php +++ b/stubs/collection_resource.blade.php @@ -1,8 +1,8 @@ -namespace {{$namespace}}; +namespace {{$namespace}}{{$singular_name}}; use Illuminate\Http\Resources\Json\ResourceCollection; class {{$plural_name}}CollectionResource extends ResourceCollection { public $collects = {{$singular_name}}Resource::class; -} \ No newline at end of file +} diff --git a/stubs/controller.blade.php b/stubs/controller.blade.php index bcf73f8d..4912363c 100644 --- a/stubs/controller.blade.php +++ b/stubs/controller.blade.php @@ -1,7 +1,7 @@ namespace {{$namespace}}; @inject('str', 'Illuminate\Support\Str') -use {{$resourcesNamespace}}\{{$str::plural($entity)}}CollectionResource; +use {{$resourcesNamespace}}\{{$entity}}\{{$str::plural($entity)}}CollectionResource; @if (in_array('C', $options)) use {{$requestsNamespace}}\{{$requestsFolder}}\Create{{$entity}}Request; @endif @@ -15,7 +15,7 @@ @if (in_array('U', $options)) use {{$requestsNamespace}}\{{$requestsFolder}}\Update{{$entity}}Request; @endif -use {{$resourcesNamespace}}\{{$entity}}Resource; +use {{$resourcesNamespace}}\{{$entity}}\{{$entity}}Resource; use {{$servicesNamespace}}\{{$entity}}Service; @if (in_array('D', $options) || in_array('U', $options)) use Symfony\Component\HttpFoundation\Response; @@ -70,4 +70,4 @@ public function delete(Delete{{$entity}}Request $request, {{$entity}}Service $se return response('', Response::HTTP_NO_CONTENT); } @endif -} \ No newline at end of file +} diff --git a/stubs/resource.blade.php b/stubs/resource.blade.php index 9f3d23be..564d95ba 100644 --- a/stubs/resource.blade.php +++ b/stubs/resource.blade.php @@ -1,4 +1,4 @@ -namespace {{$namespace}}; +namespace {{$namespace}}\{{$entity}}; use Illuminate\Http\Resources\Json\JsonResource; use {{$model_namespace}}\{{$entity}}; @@ -8,9 +8,11 @@ */ class {{$entity}}Resource extends JsonResource { + public static $wrap = null; + //TODO implement custom serialization logic or remove method redefining public function toArray($request): array { return parent::toArray($request); } -} \ No newline at end of file +} diff --git a/stubs/test.blade.php b/stubs/test.blade.php index cda50a5b..ad74a9d9 100644 --- a/stubs/test.blade.php +++ b/stubs/test.blade.php @@ -197,7 +197,7 @@ public static function getSearchFilters(): array #[DataProvider('getSearchFilters')] public function testSearch(array $filter, string $fixture) { - $response = $this->json('get', '/{{$entities}}', $filter); + $response = $this->actingAs(self::$user)->json('get', '/{{$entities}}', $filter); $response->assertOk(); diff --git a/tests/fixtures/ControllerGeneratorTest/created_controller.php b/tests/fixtures/ControllerGeneratorTest/created_controller.php index 0d1a533e..922be5ab 100644 --- a/tests/fixtures/ControllerGeneratorTest/created_controller.php +++ b/tests/fixtures/ControllerGeneratorTest/created_controller.php @@ -2,13 +2,13 @@ namespace App\Http\Controllers; -use App\Http\Resources\PostsCollectionResource; -use App\Http\Requests\Posts\CreatePostRequest; -use App\Http\Requests\Posts\DeletePostRequest; -use App\Http\Requests\Posts\GetPostRequest; -use App\Http\Requests\Posts\SearchPostsRequest; -use App\Http\Requests\Posts\UpdatePostRequest; -use App\Http\Resources\PostResource; +use App\Http\Resources\Post\PostsCollectionResource; +use App\Http\Requests\Post\CreatePostRequest; +use App\Http\Requests\Post\DeletePostRequest; +use App\Http\Requests\Post\GetPostRequest; +use App\Http\Requests\Post\SearchPostsRequest; +use App\Http\Requests\Post\UpdatePostRequest; +use App\Http\Resources\Post\PostResource; use App\Services\PostService; use Symfony\Component\HttpFoundation\Response; @@ -53,4 +53,4 @@ public function delete(DeletePostRequest $request, PostService $service, $id): R return response('', Response::HTTP_NO_CONTENT); } -} \ No newline at end of file +}