Skip to content

Commit 94fbca8

Browse files
committed
Added logic to set "noSecurity" when we meet a
requirment
1 parent 9eac753 commit 94fbca8

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/Builders/Paths/OperationsBuilder.php

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
<?php
2-
32
namespace Vyuldashev\LaravelOpenApi\Builders\Paths;
43

5-
use GoldSpecDigital\ObjectOrientedOAS\Exceptions\InvalidArgumentException;
6-
use GoldSpecDigital\ObjectOrientedOAS\Objects\Operation;
7-
use Illuminate\Support\Collection;
84
use Illuminate\Support\Str;
9-
use Vyuldashev\LaravelOpenApi\Attributes\Operation as OperationAttribute;
5+
use Illuminate\Support\Collection;
6+
use Vyuldashev\LaravelOpenApi\RouteInformation;
7+
use GoldSpecDigital\ObjectOrientedOAS\Objects\Operation;
108
use Vyuldashev\LaravelOpenApi\Builders\ExtensionsBuilder;
9+
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\SecurityBuilder;
1110
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\CallbacksBuilder;
11+
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\ResponsesBuilder;
12+
use Vyuldashev\LaravelOpenApi\Attributes\Operation as OperationAttribute;
1213
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\ParametersBuilder;
14+
use GoldSpecDigital\ObjectOrientedOAS\Exceptions\InvalidArgumentException;
1315
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\RequestBodyBuilder;
14-
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\ResponsesBuilder;
15-
use Vyuldashev\LaravelOpenApi\Builders\Paths\Operation\SecurityBuilder;
16-
use Vyuldashev\LaravelOpenApi\RouteInformation;
1716

1817
class OperationsBuilder
1918
{
@@ -73,8 +72,14 @@ public function build(array | Collection $routes): array
7372
->parameters(...$parameters)
7473
->requestBody($requestBody)
7574
->responses(...$responses)
76-
->callbacks(...$callbacks)
77-
->security(...$security);
75+
->callbacks(...$callbacks);
76+
77+
/** Not the cleanest code, we need to call notSecurity instead of security when our security has been turned off */
78+
if (count($security) === 1 && $security[0]->securityScheme === null) {
79+
$operation = $operation->noSecurity();
80+
} else {
81+
$operation = $operation->security(...$security);
82+
}
7883

7984
$this->extensionsBuilder->build($operation, $route->actionAttributes);
8085

tests/Builders/SecurityBuilderTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ public function testWeCanAddTurnOffOperationSecurityUsingBuilder()
186186
'paths' => [
187187
'/foo' => [
188188
'get' => [
189+
'summary' => 'Test',
189190
'security' => [],
190191
],
191192
],

0 commit comments

Comments
 (0)