39
39
'group ' => new QueryParameter (provider: [self ::class, 'provideGroup ' ]),
40
40
'properties ' => new QueryParameter (filter: 'my_dummy.property ' ),
41
41
'service ' => new QueryParameter (provider: CustomGroupParameterProvider::class),
42
+ 'object ' => new QueryParameter (provider: new CustomGroupParameterProvider ()),
42
43
'auth ' => new HeaderParameter (provider: [self ::class, 'restrictAccess ' ]),
43
44
'priority ' => new QueryParameter (provider: [self ::class, 'assertSecond ' ], priority: 10 ),
44
45
'priorityb ' => new QueryParameter (provider: [self ::class, 'assertFirst ' ], priority: 20 ),
79
80
parameters: new Parameters ([new QueryParameter (key: 'q ' ), new HeaderParameter (key: 'q ' )]),
80
81
provider: [self ::class, 'headerAndQueryProvider ' ]
81
82
)]
83
+ #[GetCollection(
84
+ uriTemplate: 'header_required ' ,
85
+ parameters: [
86
+ 'Req ' => new HeaderParameter (required: true , schema: ['type ' => 'string ' ]),
87
+ ],
88
+ provider: [self ::class, 'headerProvider ' ]
89
+ )]
82
90
#[QueryParameter(key: 'everywhere ' )]
83
91
class WithParameter
84
92
{
@@ -127,7 +135,7 @@ public static function restrictAccess(): void
127
135
throw new AccessDeniedHttpException ();
128
136
}
129
137
130
- public static function headerAndQueryProvider (Operation $ operation , array $ uriVariables = [], array $ context = [])
138
+ public static function headerAndQueryProvider (Operation $ operation , array $ uriVariables = [], array $ context = []): JsonResponse
131
139
{
132
140
$ parameters = $ operation ->getParameters ();
133
141
$ values = [$ parameters ->get ('q ' , HeaderParameter::class)->getValue (), $ parameters ->get ('q ' , QueryParameter::class)->getValue ()];
@@ -154,4 +162,12 @@ public static function toInt(Parameter $parameter, array $parameters = [], array
154
162
155
163
return $ operation ->withParameters ($ parameters );
156
164
}
165
+
166
+ public static function headerProvider (Operation $ operation , array $ uriVariables = [], array $ context = []): JsonResponse
167
+ {
168
+ $ parameters = $ operation ->getParameters ();
169
+ $ values = [$ parameters ->get ('Req ' , HeaderParameter::class)->getValue ()];
170
+
171
+ return new JsonResponse ($ values );
172
+ }
157
173
}
0 commit comments