Skip to content

Commit edeb147

Browse files
author
Maelmin Henge
committed
add request into model providers
1 parent 643f55c commit edeb147

File tree

12 files changed

+46
-54
lines changed

12 files changed

+46
-54
lines changed

src/Cache/CacheManager.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<?php
22

3-
43
namespace Hengebytes\WebserviceCoreAsyncBundle\Cache;
54

5+
use Exception;
66
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
77
use Hengebytes\WebserviceCoreAsyncBundle\Response\CacheResponse;
88
use Hengebytes\WebserviceCoreAsyncBundle\Tagger\CacheTagProvider;
9-
use Exception;
109
use Psr\Cache\CacheException;
1110
use Psr\Cache\InvalidArgumentException;
1211
use Symfony\Component\Cache\Adapter\TagAwareAdapterInterface;
@@ -163,7 +162,7 @@ public function invalidateCacheById(string $id): void
163162

164163
public function invalidateCacheByWSRequest(WSRequest $request): void
165164
{
166-
//$this->invalidateCacheById($this->buildCacheId($request));
165+
$this->invalidateCacheById($this->buildCacheId($request));
167166

168167
$tags = $this->cacheTagProvider->getInvalidateTags($request);
169168
if (!$tags) {

src/Cache/Middleware/Request/CacheTTLRequestModifier.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
namespace Hengebytes\WebserviceCoreAsyncBundle\Cache\Middleware\Request;
44

55
use Hengebytes\WebserviceCoreAsyncBundle\Middleware\RequestModifierInterface;
6-
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
76
use Hengebytes\WebserviceCoreAsyncBundle\Provider\ParamsProviderInterface;
7+
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
88

99
readonly class CacheTTLRequestModifier implements RequestModifierInterface
1010
{

src/DependencyInjection/HBWebserviceCoreAsyncExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
use Hengebytes\WebserviceCoreAsyncBundle\Provider\ParamsProviderInterface;
1111
use Symfony\Component\Config\FileLocator;
1212
use Symfony\Component\DependencyInjection\ContainerBuilder;
13+
use Symfony\Component\DependencyInjection\Extension\Extension;
1314
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
1415
use Symfony\Component\DependencyInjection\Reference;
15-
use Symfony\Component\DependencyInjection\Extension\Extension;
1616

1717
class HBWebserviceCoreAsyncExtension extends Extension
1818
{

src/Enum/RequestMethodEnum.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ enum RequestMethodEnum: string
99
case PUT = 'PUT';
1010
case PATCH = 'PATCH';
1111
case DELETE = 'DELETE';
12+
case OPTIONS = 'OPTIONS';
13+
case HEAD = 'HEAD';
1214
}

src/Exception/NotSupportedModelException.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace Hengebytes\WebserviceCoreAsyncBundle\Exception;
44

5-
use Exception;
5+
use RuntimeException;
66

7-
class NotSupportedModelException extends Exception
7+
class NotSupportedModelException extends RuntimeException
88
{
99
public function __construct($model)
1010
{

src/Handler/AsyncRequestHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public function request(WSRequest $request): AsyncResponse
3535
{
3636
$this->requestModification->modifyRequest($request);
3737

38-
$isCachableRequest = $request->isCachable() && $this->cacheManager !== null;
38+
$isCachableRequest = $this->cacheManager !== null && $request->isCachable();
3939
if ($isCachableRequest && !$request->isSkipReadCache()) {
4040
$cacheResponse = $this->cacheManager->getByWSRequest($request);
4141
if (in_array($cacheResponse->getStatusCode(), [Response::HTTP_OK, Response::HTTP_LOCKED], true)) {

src/Middleware/Request/BaseUrlRequestModifier.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
namespace Hengebytes\WebserviceCoreAsyncBundle\Middleware\Request;
44

55
use Hengebytes\WebserviceCoreAsyncBundle\Middleware\RequestModifierInterface;
6-
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
76
use Hengebytes\WebserviceCoreAsyncBundle\Provider\ParamsProviderInterface;
7+
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
88
use RuntimeException;
99

1010
readonly class BaseUrlRequestModifier implements RequestModifierInterface

src/Middleware/Request/TimeoutRequestModifier.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
namespace Hengebytes\WebserviceCoreAsyncBundle\Middleware\Request;
44

55
use Hengebytes\WebserviceCoreAsyncBundle\Middleware\RequestModifierInterface;
6-
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
76
use Hengebytes\WebserviceCoreAsyncBundle\Provider\ParamsProviderInterface;
7+
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
88

99
readonly class TimeoutRequestModifier implements RequestModifierInterface
1010
{

src/Provider/ModelProvider.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Hengebytes\WebserviceCoreAsyncBundle\Provider;
44

55
use Hengebytes\WebserviceCoreAsyncBundle\Exception\NotSupportedModelException;
6+
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
67
use Symfony\Component\DependencyInjection\Attribute\TaggedIterator;
78

89
/**
@@ -19,9 +20,9 @@ public function __construct(
1920
/**
2021
* @param class-string<T> $className
2122
* @return T
22-
* @throws NotSupportedModelException
23+
* @throws NotSupportedModelException if no provider for $className
2324
*/
24-
public function getModel(string $className, mixed $data)
25+
public function getModel(string $className, mixed $data, ?WSRequest $request = null): object
2526
{
2627
$supportedProvider = null;
2728
/** @var ModelProviderInterface $provider */
@@ -36,6 +37,6 @@ public function getModel(string $className, mixed $data)
3637
throw new NotSupportedModelException($className);
3738
}
3839

39-
return $supportedProvider->getModel($data, $this);
40+
return $supportedProvider->getModel($data, $this, $request);
4041
}
4142
}

src/Provider/ModelProviderInterface.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
namespace Hengebytes\WebserviceCoreAsyncBundle\Provider;
44

5+
use Hengebytes\WebserviceCoreAsyncBundle\Request\WSRequest;
56
use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag;
67

78
#[AutoconfigureTag('webservice_core_async.provider.model')]
89
interface ModelProviderInterface
910
{
10-
public function getModel(mixed $data, ModelProvider $modelProvider): object;
11+
public function getModel(mixed $data, ModelProvider $modelProvider, ?WSRequest $WSRequest = null): object;
1112

1213
public function supports(string $model): bool;
1314

0 commit comments

Comments
 (0)