Skip to content

Commit a2ad564

Browse files
author
Anton Filippov
committed
#81781
1 parent 1ff04da commit a2ad564

File tree

5 files changed

+132
-90
lines changed

5 files changed

+132
-90
lines changed

src/Commands/GenerateServer.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ public function handleMapping(string $sourcePath, array $optionsPerEntity)
7272
resolve($generatorClass)->setOptions($optionsPerEntity)->generate($specObject);
7373
} catch (EnumsNamespaceMissingException) {
7474
$this->error("Option \"enums_namespace\" for entity \"$entity\" are not set in \"api_docs_mappings\" config for source \"$sourcePath\"");
75+
76+
return self::FAILURE;
7577
}
7678
}
7779

src/Data/OpenApi3/OpenApi3ObjectProperty.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ public function fillFromStdProperty(string $propertyName, stdClass $stdProperty)
3333
if (std_object_has($stdProperty, 'x-lg-enum-class')) {
3434
$this->enumClass = $stdProperty->{'x-lg-enum-class'};
3535
}
36-
if (std_object_has($stdProperty, 'type')) {
37-
$this->type = $stdProperty->type;
38-
}
3936

4037
switch (OpenApi3PropertyTypeEnum::from($stdProperty->type)) {
4138
case OpenApi3PropertyTypeEnum::OBJECT:

templates/Request.template

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

33
namespace {{ namespace }};
44

5-
use App\Http\ApiV1\Support\Requests\BaseFormRequest;
5+
use Illuminate\Foundation\Http\FormRequest;
66
{{ uses }}
77

8-
class {{ className }} extends BaseFormRequest
8+
class {{ className }} extends FormRequest
99
{
10+
/**
11+
* Determine if the user is authorized to make this request.
12+
*
13+
* @return bool
14+
*/
15+
public function authorize(): bool
16+
{
17+
return false;
18+
}
19+
1020
/**
1121
* Get the validation rules that apply to the request.
1222
*
Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,47 @@
11
return [
2-
'field_object_nullable' => ['nullable'],
3-
'field_object_nullable.field' => ['integer'],
4-
'field_array_nullable' => ['nullable', 'array'],
5-
'field_array_nullable.*.field' => ['integer'],
6-
'field_enum_nullable' => ['nullable', new Enum(TestIntegerEnum::class)],
7-
'field_number_nullable' => ['nullable', 'numeric'],
8-
'field_boolean_nullable' => ['nullable', 'boolean'],
9-
'field_string_nullable' => ['nullable', 'string'],
10-
'field_integer_nullable' => ['nullable', 'integer'],
11-
'field_object_required' => ['required'],
12-
'field_object_required.field' => ['integer'],
13-
'field_array_required' => ['required', 'array'],
14-
'field_array_required.*.field' => ['integer'],
15-
'field_enum_required' => ['required', new Enum(TestIntegerEnum::class)],
16-
'field_number_required' => ['required', 'numeric'],
17-
'field_boolean_required' => ['required', 'boolean'],
18-
'field_string_required' => ['required', 'string'],
19-
'field_integer_required' => ['required', 'integer'],
20-
'field_object.field' => ['integer'],
21-
'field_array' => ['array'],
22-
'field_array.*.field' => ['integer'],
23-
'field_enum' => [new Enum(TestIntegerEnum::class)],
24-
'field_number' => ['numeric'],
25-
'field_boolean' => ['boolean'],
26-
'field_string_uuid' => ['uuid'],
27-
'field_string_url' => ['url'],
28-
'field_string_phone' => ['regex:/^\+7\d{10}$/'],
29-
'field_string_timezone' => ['timezone'],
30-
'field_string_ipv6' => ['ipv6'],
31-
'field_string_ipv4' => ['ipv4'],
32-
'field_string_email' => ['email'],
33-
'field_string_binary' => ['file'],
34-
'field_string_byte' => ['string'],
35-
'field_string_password' => ['password'],
36-
'field_string_date' => ['date'],
37-
'field_string' => ['string'],
38-
'field_integer_double' => ['integer'],
39-
'field_integer' => ['integer'],
2+
'field_object_nullable_fillable' => ['nullable'],
3+
'field_object_nullable_fillable.field' => ['integer'],
4+
'field_array_nullable_fillable' => ['nullable', 'array'],
5+
'field_array_nullable_fillable.*.field' => ['integer'],
6+
'field_enum_nullable_fillable' => ['nullable', new Enum(TestIntegerEnum::class)],
7+
'field_number_nullable_fillable' => ['nullable', 'numeric'],
8+
'field_boolean_nullable_fillable' => ['nullable', 'boolean'],
9+
'field_string_nullable_fillable' => ['nullable', 'string'],
10+
'field_integer_nullable_fillable' => ['nullable', 'integer'],
11+
'field_object_required_fillable' => ['required'],
12+
'field_object_required_fillable.field' => ['integer'],
13+
'field_array_required_fillable' => ['required', 'array'],
14+
'field_array_required_fillable.*.field' => ['integer'],
15+
'field_enum_required_fillable' => ['required', new Enum(TestIntegerEnum::class)],
16+
'field_number_required_fillable' => ['required', 'numeric'],
17+
'field_boolean_required_fillable' => ['required', 'boolean'],
18+
'field_string_required_fillable' => ['required', 'string'],
19+
'field_integer_required_fillable' => ['required', 'integer'],
20+
'field_object_fillable.field' => ['integer'],
21+
'field_array_fillable' => ['array'],
22+
'field_array_fillable.*.field' => ['integer'],
23+
'field_enum_fillable' => [new Enum(TestIntegerEnum::class)],
24+
'field_number_fillable' => ['numeric'],
25+
'field_boolean_fillable' => ['boolean'],
26+
'field_string_uuid_fillable' => ['uuid'],
27+
'field_string_url_fillable' => ['url'],
28+
'field_string_phone_fillable' => ['regex:/^\+7\d{10}$/'],
29+
'field_string_timezone_fillable' => ['timezone'],
30+
'field_string_ipv6_fillable' => ['ipv6'],
31+
'field_string_ipv4_fillable' => ['ipv4'],
32+
'field_string_email_fillable' => ['email'],
33+
'field_string_binary_fillable' => ['file'],
34+
'field_string_byte_fillable' => ['string'],
35+
'field_string_password_fillable' => ['password'],
36+
'field_string_date_fillable' => ['date'],
37+
'field_string_fillable' => ['string'],
38+
'field_integer_double_fillable' => ['integer'],
39+
'field_integer_fillable' => ['integer'],
40+
'field_object_readonly.field' => ['integer'],
41+
'field_array_readonly' => ['array'],
42+
'field_array_readonly.*.field' => ['integer'],
43+
'field_enum_readonly' => [new Enum(TestIntegerEnum::class)],
44+
'field_number_readonly' => ['numeric'],
45+
'field_boolean_readonly' => ['boolean'],
46+
'field_integer_readonly' => ['integer'],
4047
];
Lines changed: 73 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,149 +1,174 @@
11
#Objects
2+
ResourceReadonlyForTestValidationRules:
3+
type: object
4+
properties:
5+
field_integer_readonly:
6+
type: integer
7+
description: Поле типа integer
8+
field_boolean_readonly:
9+
type: boolean
10+
description: Поле типа boolean
11+
field_number_readonly:
12+
type: number
13+
description: Поле типа number
14+
field_enum_readonly:
15+
type: integer
16+
description: Поле, значение которого задается TestIntegerEnum
17+
x-lg-enum-class: 'TestIntegerEnum'
18+
example: 1
19+
field_array_readonly:
20+
type: array
21+
description: Поле типа array
22+
items:
23+
type: object
24+
properties:
25+
field:
26+
type: integer
27+
field_object_readonly:
28+
type: object
29+
description: Поле типа object
30+
properties:
31+
field:
32+
type: integer
33+
234
ResourceFillableForTestValidationRules:
335
type: object
436
properties:
5-
field_integer:
37+
field_integer_fillable:
638
type: integer
739
description: Поле типа integer
8-
field_integer_double:
40+
field_integer_double_fillable:
941
type: integer
1042
format: double
1143
description: Поле типа integer формат double (не поддерживается)
12-
field_string:
44+
field_string_fillable:
1345
type: string
1446
description: Поле типа string
15-
field_string_date:
47+
field_string_date_fillable:
1648
type: string
1749
format: date
1850
description: Поле типа string с форматом date
19-
field_string_password:
51+
field_string_password_fillable:
2052
type: string
2153
format: password
2254
description: Поле типа string с форматом password
23-
field_string_byte:
55+
field_string_byte_fillable:
2456
type: string
2557
format: byte
2658
description: Поле типа string с форматом byte
27-
field_string_binary:
59+
field_string_binary_fillable:
2860
type: string
2961
format: binary
3062
description: Поле типа string с форматом binary
31-
field_string_email:
63+
field_string_email_fillable:
3264
type: string
3365
format: email
3466
description: Поле типа string с форматом email
35-
field_string_ipv4:
67+
field_string_ipv4_fillable:
3668
type: string
3769
format: ipv4
3870
description: Поле типа string с форматом ipv4
39-
field_string_ipv6:
71+
field_string_ipv6_fillable:
4072
type: string
4173
format: ipv6
4274
description: Поле типа string с форматом ipv6
43-
field_string_timezone:
75+
field_string_timezone_fillable:
4476
type: string
4577
format: timezone
4678
description: Поле типа string с форматом timezone
47-
field_string_phone:
79+
field_string_phone_fillable:
4880
type: string
4981
format: phone
5082
description: Поле типа string с форматом phone
51-
field_string_url:
83+
field_string_url_fillable:
5284
type: string
5385
format: url
5486
description: Поле типа string с форматом url
55-
field_string_uuid:
87+
field_string_uuid_fillable:
5688
type: string
5789
format: uuid
5890
description: Поле типа string с форматом uuid
59-
field_boolean:
91+
field_boolean_fillable:
6092
type: boolean
6193
description: Поле типа boolean
62-
field_number:
94+
field_number_fillable:
6395
type: number
6496
description: Поле типа number
65-
field_enum:
97+
field_enum_fillable:
6698
type: integer
6799
description: Поле, значение которого задается TestIntegerEnum
68100
x-lg-enum-class: 'TestIntegerEnum'
69101
example: 1
70-
field_array:
102+
field_array_fillable:
71103
type: array
72104
description: Поле типа array
73105
items:
74106
type: object
75107
properties:
76108
field:
77109
type: integer
78-
field_object:
110+
field_object_fillable:
79111
type: object
80112
description: Поле типа object
81113
properties:
82114
field:
83115
type: integer
84116

85-
field_integer_required:
117+
field_integer_required_fillable:
86118
type: integer
87119
description: Поле типа integer
88-
required: true
89-
field_string_required:
120+
field_string_required_fillable:
90121
type: string
91122
description: Поле типа string
92-
required: true
93-
field_boolean_required:
123+
field_boolean_required_fillable:
94124
type: boolean
95125
description: Поле типа boolean
96-
required: true
97-
field_number_required:
126+
field_number_required_fillable:
98127
type: number
99128
description: Поле типа number
100-
required: true
101-
field_enum_required:
129+
field_enum_required_fillable:
102130
type: integer
103131
description: Поле, значение которого задается TestIntegerEnum
104132
x-lg-enum-class: 'TestIntegerEnum'
105133
example: 1
106-
required: true
107-
field_array_required:
134+
field_array_required_fillable:
108135
type: array
109136
description: Поле типа array
110137
items:
111138
type: object
112139
properties:
113140
field:
114141
type: integer
115-
required: true
116-
field_object_required:
142+
field_object_required_fillable:
117143
type: object
118144
description: Поле типа object
119145
properties:
120146
field:
121147
type: integer
122-
required: true
123148

124-
field_integer_nullable:
149+
field_integer_nullable_fillable:
125150
type: integer
126151
description: Поле типа integer
127152
nullable: true
128-
field_string_nullable:
153+
field_string_nullable_fillable:
129154
type: string
130155
description: Поле типа string
131156
nullable: true
132-
field_boolean_nullable:
157+
field_boolean_nullable_fillable:
133158
type: boolean
134159
description: Поле типа boolean
135160
nullable: true
136-
field_number_nullable:
161+
field_number_nullable_fillable:
137162
type: number
138163
description: Поле типа number
139164
nullable: true
140-
field_enum_nullable:
165+
field_enum_nullable_fillable:
141166
type: integer
142167
description: Поле, значение которого задается TestIntegerEnum
143168
x-lg-enum-class: 'TestIntegerEnum'
144169
example: 1
145170
nullable: true
146-
field_array_nullable:
171+
field_array_nullable_fillable:
147172
type: array
148173
description: Поле типа array
149174
items:
@@ -152,7 +177,7 @@ ResourceFillableForTestValidationRules:
152177
field:
153178
type: integer
154179
nullable: true
155-
field_object_nullable:
180+
field_object_nullable_fillable:
156181
type: object
157182
description: Поле типа object
158183
properties:
@@ -163,16 +188,17 @@ ResourceFillableForTestValidationRules:
163188
ResourceRequiredForTestValidationRules:
164189
type: object
165190
required:
166-
- field_integer_required
167-
- field_string_required
168-
- field_boolean_required
169-
- field_number_required
170-
- field_enum_required
171-
- field_array_required
172-
- field_object_required
191+
- field_integer_required_fillable
192+
- field_string_required_fillable
193+
- field_boolean_required_fillable
194+
- field_number_required_fillable
195+
- field_enum_required_fillable
196+
- field_array_required_fillable
197+
- field_object_required_fillable
173198

174199
#Requests
175200
ResourceForTestValidationRules:
176201
allOf:
202+
- $ref: '#/ResourceReadonlyForTestValidationRules'
177203
- $ref: '#/ResourceFillableForTestValidationRules'
178204
- $ref: '#/ResourceRequiredForTestValidationRules'

0 commit comments

Comments
 (0)