Skip to content

Commit c916109

Browse files
committed
Update strategy stubs
1 parent a2ac416 commit c916109

File tree

4 files changed

+20
-27
lines changed

4 files changed

+20
-27
lines changed

config/scribe.php

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
use Knuckles\Scribe\Extracting\Strategies;
4-
use Knuckles\Scribe\Config;
4+
use Knuckles\Scribe\Config\Defaults;
55
use Knuckles\Scribe\Config\AuthIn;
66
use function Knuckles\Scribe\Config\{removeStrategies, configureStrategy};
77

@@ -207,26 +207,26 @@
207207
// Use removeStrategies() to remove an included strategy.
208208
'strategies' => [
209209
'metadata' => [
210-
...Config\Defaults::METADATA_STRATEGIES,
211-
],
212-
'urlParameters' => [
213-
...Config\Defaults::URL_PARAMETERS_STRATEGIES,
214-
],
215-
'queryParameters' => [
216-
...Config\Defaults::QUERY_PARAMETERS_STRATEGIES,
210+
...Defaults::METADATA_STRATEGIES,
217211
],
218212
'headers' => [
219-
...Config\Defaults::HEADERS_STRATEGIES,
213+
...Defaults::HEADERS_STRATEGIES,
220214
Strategies\StaticData::withSettings(data: [
221215
'Content-Type' => 'application/json',
222216
'Accept' => 'application/json',
223217
]),
224218
],
219+
'urlParameters' => [
220+
...Defaults::URL_PARAMETERS_STRATEGIES,
221+
],
222+
'queryParameters' => [
223+
...Defaults::QUERY_PARAMETERS_STRATEGIES,
224+
],
225225
'bodyParameters' => [
226-
...Config\Defaults::BODY_PARAMETERS_STRATEGIES,
226+
...Defaults::BODY_PARAMETERS_STRATEGIES,
227227
],
228228
'responses' => configureStrategy(
229-
Config\Defaults::RESPONSES_STRATEGIES,
229+
Defaults::RESPONSES_STRATEGIES,
230230
Strategies\Responses\ResponseCalls::withSettings(
231231
only: ['GET *'],
232232
// Recommended: disable debug mode in response calls to avoid error stack traces in responses
@@ -236,7 +236,7 @@
236236
)
237237
),
238238
'responseFields' => [
239-
...Config\Defaults::RESPONSE_FIELDS_STRATEGIES,
239+
...Defaults::RESPONSE_FIELDS_STRATEGIES,
240240
]
241241
],
242242

src/Commands/stubs/strategy.stub

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ class DummyClass extends Strategy
1919
* @link https://scribe.knuckles.wtf/laravel/advanced/plugins
2020
* @param ExtractedEndpointData $endpointData The endpoint we are currently processing.
2121
* Contains details about httpMethods, controller, method, route, url, etc, as well as already extracted data.
22-
* @param array $routeRules Array of rules for the ruleset which this route belongs to.
22+
* @param array $settings Settings to be applied to this strategy
2323
*
2424
* See the documentation linked above for more details about writing custom strategies.
2525
*
2626
* @return array|null
2727
*/
28-
public function __invoke(ExtractedEndpointData $endpointData, array $routeRules = []): ?array
28+
public function __invoke(ExtractedEndpointData $endpointData, array $settings = []): ?array
2929
{
3030
return [];
3131
}

src/Config/Defaults.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ class Defaults
1111
Strategies\Metadata\GetFromMetadataAttributes::class,
1212
];
1313

14+
public const HEADERS_STRATEGIES = [
15+
Strategies\Headers\GetFromHeaderAttribute::class,
16+
Strategies\Headers\GetFromHeaderTag::class,
17+
];
18+
1419
public const URL_PARAMETERS_STRATEGIES = [
1520
Strategies\UrlParameters\GetFromLaravelAPI::class,
1621
Strategies\UrlParameters\GetFromUrlParamAttribute::class,
@@ -24,11 +29,6 @@ class Defaults
2429
Strategies\QueryParameters\GetFromQueryParamTag::class,
2530
];
2631

27-
public const HEADERS_STRATEGIES = [
28-
Strategies\Headers\GetFromHeaderAttribute::class,
29-
Strategies\Headers\GetFromHeaderTag::class,
30-
];
31-
3232
public const BODY_PARAMETERS_STRATEGIES = [
3333
Strategies\BodyParameters\GetFromFormRequest::class,
3434
Strategies\BodyParameters\GetFromInlineValidator::class,

src/Extracting/Strategies/Strategy.php

+1-8
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ public function getConfig(): DocumentationConfig
2525

2626
/**
2727
* @param ExtractedEndpointData $endpointData
28-
* @param array $settings Settings to be applied to this strategy while processing this route.
29-
* In the past, this was "routeRules".
28+
* @param array $settings Settings to be applied to this strategy.
3029
*
3130
* @return array|null
3231
*/
@@ -47,12 +46,6 @@ public static function wrapWithSettings(
4746
array $otherSettings = []
4847
): array
4948
{
50-
if (!empty($only) && !empty($except)) {
51-
throw new \InvalidArgumentException(
52-
"You can not specify both \$only and \$except together in your ".static::class." settings"
53-
);
54-
}
55-
5649
return [
5750
static::class,
5851
['only' => $only, 'except' => $except, ...$otherSettings],

0 commit comments

Comments
 (0)