Skip to content

Commit 3f412ac

Browse files
committed
add enum for api type values
1 parent 189f06e commit 3f412ac

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

src/Builder/Client.php

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Diglin\Sylius\ApiClient\SyliusAdminClientBuilder;
88
use Diglin\Sylius\ApiClient\SyliusShopClientBuilder;
99
use Kiboko\Plugin\Sylius\MissingAuthenticationMethodException;
10+
use Kiboko\Plugin\Sylius\Validator\ApiType;
1011
use PhpParser\Builder;
1112
use PhpParser\Node;
1213

@@ -20,7 +21,7 @@ final class Client implements Builder
2021
private ?Node\Expr $httpRequestFactory = null;
2122
private ?Node\Expr $httpStreamFactory = null;
2223
private ?Node\Expr $fileSystem = null;
23-
private string $apiType = '';
24+
private string $apiType;
2425

2526
public const API_ADMIN_KEY = 'admin';
2627
public const API_SHOP_KEY = 'shop';
@@ -135,9 +136,9 @@ public function getNode(): Node\Expr\MethodCall
135136
private function getClientBuilderNode(): Node\Expr\MethodCall
136137
{
137138
$className = match ($this->apiType) {
138-
self::API_ADMIN_KEY => SyliusAdminClientBuilder::class,
139-
self::API_SHOP_KEY => SyliusShopClientBuilder::class,
140-
self::API_LEGACY_KEY => 'Diglin\\Sylius\\ApiClient\\SyliusClientBuilder'
139+
ApiType::ADMIN->value => SyliusAdminClientBuilder::class,
140+
ApiType::SHOP->value => SyliusShopClientBuilder::class,
141+
ApiType::LEGACY->value => 'Diglin\\Sylius\\ApiClient\\SyliusClientBuilder',
141142
};
142143

143144
return new Node\Expr\MethodCall(

src/Validator/ApiType.php

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Kiboko\Plugin\Sylius\Validator;
6+
7+
enum ApiType: string
8+
{
9+
case ADMIN = 'admin';
10+
case SHOP = 'shop';
11+
case LEGACY = 'legacy';
12+
}

src/Validator/ExtractorConfigurationValidator.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -459,15 +459,15 @@ class ExtractorConfigurationValidator implements ConfigurationValidatorInterface
459459
public static function validate(array $item): array
460460
{
461461
switch($item['api_type']) {
462-
case 'admin':
462+
case ApiType::ADMIN->value:
463463
$endpoints = self::$endpointsAdmin;
464464
$doubleEndpoints = self::$doubleEndpointsAdmin;
465465
break;
466-
case 'shop':
466+
case ApiType::SHOP->value:
467467
$endpoints = self::$endpointsShop;
468468
$doubleEndpoints = self::$doubleEndpointsShop;
469469
break;
470-
case 'legacy':
470+
case ApiType::LEGACY->value:
471471
$endpoints = self::$endpointsLegacy;
472472
$doubleEndpoints = self::$doubleEndpointsLegacy;
473473
break;

src/Validator/LoaderConfigurationValidator.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,9 @@ class LoaderConfigurationValidator implements ConfigurationValidatorInterface
252252
public static function validate(array $item): array
253253
{
254254
$endpoints = match ($item['api_type']) {
255-
'admin' => self::$endpointsAdmin,
256-
'shop' => self::$endpointsShop,
257-
'legacy' => self::$endpointsLegacy
255+
ApiType::ADMIN->value => self::$endpointsAdmin,
256+
ApiType::SHOP->value => self::$endpointsShop,
257+
ApiType::LEGACY->value => self::$endpointsLegacy
258258
};
259259
if (!\in_array($item['type'], array_keys($endpoints))) {
260260
throw new \InvalidArgumentException(sprintf('the value should be one of [%s], got %s', implode(', ', array_keys($endpoints)), json_encode($item['type'], \JSON_THROW_ON_ERROR)));

0 commit comments

Comments
 (0)