Skip to content

Commit b737077

Browse files
committed
WIP
1 parent ac61483 commit b737077

File tree

61 files changed

+81
-161
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+81
-161
lines changed

src/PathSegment/OpenAPI.php

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -302,32 +302,35 @@ public function emitJson(Transaction $transaction): void
302302
$boundParameterName = $operation->getBindingParameterName();
303303
$boundParameter = $operation->getCallableArguments()[$boundParameterName] ?? null;
304304
$pathItemObject = (object) [];
305+
$tags = [];
305306

306307
switch (true) {
307308
case null === $boundParameter:
308309
$paths->{'/'.$operation->getName()} = $pathItemObject;
310+
$tags[] = __('lodata::Service operations');
311+
$tags[] = $operation->getName();
309312
break;
310313

311314
case $boundParameter instanceof Operation\EntitySetArgument:
312-
$paths->{"/{$boundParameterName}/{$operation->getName()}()"} = $pathItemObject;
315+
$paths->{"/{$boundParameter->getName()}/{$operation->getName()}()"} = $pathItemObject;
316+
$tags[] = $boundParameter->getName();
313317
break;
314318

315319
case $boundParameter instanceof Operation\EntityArgument:
316-
$paths->{"/{$boundParameterName}/{{$boundParameter->getType()->getKey()->getName()}}/{$operation->getName()}()"} = $pathItemObject;
320+
foreach (Lodata::getResources()->sliceByClass(EntitySet::class)->filter(function (
321+
EntitySet $entitySet
322+
) use ($boundParameter) {
323+
return $entitySet->getType() === $boundParameter->getType();
324+
}) as $resource) {
325+
$paths->{"/{$resource->getName()}/{{$resource->getType()->getKey()->getName()}}/{$operation->getName()}()"} = $pathItemObject;
326+
$tags[] = $resource->getName();
327+
}
317328
break;
318329
}
319330

320331
$queryObject = (object) [];
321332
$pathItemObject->{$operation->isFunction() ? 'get' : 'post'} = $queryObject;
322333

323-
$tags = [];
324-
$tags[] = __('lodata::Service operations');
325-
$tags[] = $operation->getName();
326-
327-
if ($boundParameterName) {
328-
$tags[] = $boundParameterName;
329-
}
330-
331334
$parameters = [];
332335

333336
$returnType = $operation->getReturnType();
@@ -338,8 +341,6 @@ public function emitJson(Transaction $transaction): void
338341
continue;
339342
}
340343

341-
$tags[] = $argument->getName();
342-
343344
$parameters[] = [
344345
'required' => !$argument->isNullable(),
345346
'in' => 'query',

tests/__snapshots__/Entity/EloquentTest__test_generated_property__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3394,8 +3394,7 @@
33943394
"get": {
33953395
"tags": [
33963396
"Service operations",
3397-
"op2",
3398-
"prefix"
3397+
"op2"
33993398
],
34003399
"parameters": [
34013400
{

tests/__snapshots__/EntitySet/EloquentTest__test_metadata__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3390,8 +3390,7 @@
33903390
"get": {
33913391
"tags": [
33923392
"Service operations",
3393-
"op2",
3394-
"prefix"
3393+
"op2"
33953394
],
33963395
"parameters": [
33973396
{

tests/__snapshots__/Operation/ActionTest__test_array_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"arrayv1",
293-
"args"
292+
"arrayv1"
294293
],
295294
"parameters": [
296295
{

tests/__snapshots__/Operation/ActionTest__test_date_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"datev1",
293-
"dt"
292+
"datev1"
294293
],
295294
"parameters": [
296295
{

tests/__snapshots__/Operation/ActionTest__test_odata_binary_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"op",
293-
"arg"
292+
"op"
294293
],
295294
"parameters": [
296295
{

tests/__snapshots__/Operation/ActionTest__test_odata_boolean_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"op",
293-
"arg"
292+
"op"
294293
],
295294
"parameters": [
296295
{

tests/__snapshots__/Operation/ActionTest__test_odata_byte_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"op",
293-
"arg"
292+
"op"
294293
],
295294
"parameters": [
296295
{

tests/__snapshots__/Operation/ActionTest__test_odata_collection_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"op",
293-
"args"
292+
"op"
294293
],
295294
"parameters": [
296295
{

tests/__snapshots__/Operation/ActionTest__test_odata_date_argument__4.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,7 @@
289289
"post": {
290290
"tags": [
291291
"Service operations",
292-
"op",
293-
"arg"
292+
"op"
294293
],
295294
"parameters": [
296295
{

0 commit comments

Comments
 (0)