Skip to content

Commit 0332cb1

Browse files
authored
Merge branch 'master' into fix-generate-nova-resource-sub-folder
2 parents 375fc80 + 23f100d commit 0332cb1

File tree

6 files changed

+38
-5
lines changed

6 files changed

+38
-5
lines changed

src/Generators/RequestsGenerator.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ protected function createRequest($method, $needToValidate = true, $parameters =
7474
'needToValidate' => $needToValidate,
7575
'requestsFolder' => $requestsFolder,
7676
'namespace' => $this->getNamespace('requests'),
77-
'servicesNamespace' => $this->getNamespace('services')
77+
'servicesNamespace' => $this->getNamespace('services'),
78+
'entityNamespace' => $this->getModelClass($this->model),
7879
]);
7980

8081
$this->saveClass('requests', "{$method}{$modelName}Request",
@@ -194,6 +195,10 @@ protected function getRules($name, $type, $required, $nullable, $present): array
194195
$rules[] = 'present';
195196
}
196197

198+
if ($name === 'order_by') {
199+
$rules[] = 'in:';
200+
}
201+
197202
return [
198203
'name' => $name,
199204
'rules' => $rules

stubs/request.blade.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
use {{ $servicesNamespace }}\{{ $entity }}Service;
77
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
88
@endif
9+
@if($method === $requestsGenerator::SEARCH_METHOD)
10+
use {{ $entityNamespace }};
11+
@endif
912

1013
class {{ $method }}{{ $entity }}Request extends Request
1114
{
@@ -15,7 +18,7 @@ public function rules(): array
1518
@if(!empty($parameters))
1619
return [
1720
@foreach($parameters as $parameter)
18-
'{{ $parameter['name'] }}' => '{{ implode('|', $parameter['rules']) }}',
21+
'{{ $parameter['name'] }}' => '{!! implode('|', $parameter['rules']) !!}'@if ($parameter['name'] === 'order_by') . $this->getOrderableFields({{ Str::singular($entity) }}::class)@endif,
1922
@endforeach
2023
];
2124
@else

tests/CommandTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public function testCallCommandSubFoldersModel()
126126
$this->assertGeneratedFileEquals('service.php', 'app/Services/PostService.php');
127127
$this->assertGeneratedFileEquals('create_request.php', 'app/Http/Requests/Post/CreatePostRequest.php');
128128
$this->assertGeneratedFileEquals('get_request.php', 'app/Http/Requests/Post/GetPostRequest.php');
129-
$this->assertGeneratedFileEquals('search_request.php', 'app/Http/Requests/Post/SearchPostsRequest.php');
129+
$this->assertGeneratedFileEquals('search_request_subfolder_model.php', 'app/Http/Requests/Post/SearchPostsRequest.php');
130130
$this->assertGeneratedFileEquals('update_request.php', 'app/Http/Requests/Post/UpdatePostRequest.php');
131131
$this->assertGeneratedFileEquals('delete_request.php', 'app/Http/Requests/Post/DeletePostRequest.php');
132132
$this->assertGeneratedFileEquals('controller.php', 'app/Http/Controllers/PostController.php');

tests/fixtures/CommandTest/search_request.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace App\Http\Requests\Post;
44

55
use App\Http\Requests\Request;
6+
use RonasIT\Support\Tests\Support\Command\Models\Post;
67

78
class SearchPostsRequest extends Request
89
{
@@ -11,7 +12,7 @@ public function rules(): array
1112
return [
1213
'page' => 'integer',
1314
'per_page' => 'integer',
14-
'order_by' => 'string',
15+
'order_by' => 'string|in:' . $this->getOrderableFields(Post::class),
1516
'desc' => 'boolean',
1617
'all' => 'boolean',
1718
'with' => 'array',
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Post;
4+
5+
use App\Http\Requests\Request;
6+
use RonasIT\Support\Tests\Support\Command\Models\Forum\Post;
7+
8+
class SearchPostsRequest extends Request
9+
{
10+
public function rules(): array
11+
{
12+
return [
13+
'page' => 'integer',
14+
'per_page' => 'integer',
15+
'order_by' => 'string|in:' . $this->getOrderableFields(Post::class),
16+
'desc' => 'boolean',
17+
'all' => 'boolean',
18+
'with' => 'array',
19+
'query' => 'string|nullable',
20+
'with.*' => 'string',
21+
];
22+
}
23+
}

tests/fixtures/RequestGeneratorTest/search_request.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace App\Http\Requests\Post;
44

55
use App\Http\Requests\Request;
6+
use App\Models\Post;
67

78
class SearchPostsRequest extends Request
89
{
@@ -16,7 +17,7 @@ public function rules(): array
1617
'desc' => 'boolean',
1718
'all' => 'boolean',
1819
'with' => 'array',
19-
'order_by' => 'string',
20+
'order_by' => 'string|in:' . $this->getOrderableFields(Post::class),
2021
'query' => 'string|nullable',
2122
'with.*' => 'string',
2223
];

0 commit comments

Comments
 (0)