diff --git a/src/ApiPlatform/Resources/ApiClient.php b/src/ApiPlatform/Resources/ApiClient.php index 5580062..77ab06a 100644 --- a/src/ApiPlatform/Resources/ApiClient.php +++ b/src/ApiPlatform/Resources/ApiClient.php @@ -39,8 +39,6 @@ use PrestaShopBundle\ApiPlatform\Metadata\CQRSDelete; use PrestaShopBundle\ApiPlatform\Metadata\CQRSGet; use PrestaShopBundle\ApiPlatform\Metadata\CQRSPartialUpdate; -use PrestaShopBundle\ApiPlatform\Processor\CommandProcessor; -use PrestaShopBundle\ApiPlatform\Provider\QueryProvider; #[ApiResource( operations: [ @@ -67,7 +65,6 @@ ], ], ], - provider: QueryProvider::class, CQRSQuery: GetApiClientForEditing::class, scopes: ['api_client_read'] ), @@ -95,20 +92,17 @@ ], ], output: false, - provider: QueryProvider::class, CQRSQuery: DeleteApiClientCommand::class, scopes: ['api_client_write'] ), new CQRSCreate( uriTemplate: '/api-client', - processor: CommandProcessor::class, CQRSCommand: AddApiClientCommand::class, scopes: ['api_client_write'] ), new CQRSPartialUpdate( uriTemplate: '/api-client/{apiClientId}', read: false, - processor: CommandProcessor::class, CQRSCommand: EditApiClientCommand::class, CQRSQuery: GetApiClientForEditing::class, scopes: ['api_client_write'] diff --git a/src/ApiPlatform/Resources/CartRule.php b/src/ApiPlatform/Resources/CartRule.php index 693af79..488a7da 100644 --- a/src/ApiPlatform/Resources/CartRule.php +++ b/src/ApiPlatform/Resources/CartRule.php @@ -31,13 +31,11 @@ use ApiPlatform\Metadata\ApiResource; use PrestaShop\PrestaShop\Core\Domain\CartRule\Command\EditCartRuleCommand; use PrestaShopBundle\ApiPlatform\Metadata\CQRSPartialUpdate; -use PrestaShopBundle\ApiPlatform\Processor\CommandProcessor; #[ApiResource( operations: [ new CQRSPartialUpdate( uriTemplate: '/cart-rule', - processor: CommandProcessor::class, CQRSCommand: EditCartRuleCommand::class ), ], diff --git a/src/ApiPlatform/Resources/FoundProduct.php b/src/ApiPlatform/Resources/FoundProduct.php index b42aab6..ebb6cf6 100644 --- a/src/ApiPlatform/Resources/FoundProduct.php +++ b/src/ApiPlatform/Resources/FoundProduct.php @@ -32,7 +32,6 @@ use ApiPlatform\Metadata\ApiResource; use PrestaShop\PrestaShop\Core\Domain\Product\Query\SearchProducts; use PrestaShopBundle\ApiPlatform\Metadata\CQRSQueryCollection; -use PrestaShopBundle\ApiPlatform\Provider\QueryProvider; #[ApiResource( operations: [ @@ -74,7 +73,6 @@ ], ], ], - provider: QueryProvider::class, CQRSQuery: SearchProducts::class ), ], diff --git a/src/ApiPlatform/Resources/Hook.php b/src/ApiPlatform/Resources/Hook.php index df8895f..8c98dbb 100644 --- a/src/ApiPlatform/Resources/Hook.php +++ b/src/ApiPlatform/Resources/Hook.php @@ -36,11 +36,9 @@ use PrestaShop\PrestaShop\Core\Domain\Hook\Query\GetHook; use PrestaShop\PrestaShop\Core\Domain\Hook\Query\GetHookStatus; use PrestaShopBundle\ApiPlatform\Metadata\CQRSGet; -use PrestaShopBundle\ApiPlatform\Metadata\CQRSPartialUpdate; +use PrestaShopBundle\ApiPlatform\Metadata\CQRSUpdate; use PrestaShopBundle\ApiPlatform\Metadata\DQBPaginatedList; -use PrestaShopBundle\ApiPlatform\Processor\CommandProcessor; use PrestaShopBundle\ApiPlatform\Provider\QueryListProvider; -use PrestaShopBundle\ApiPlatform\Provider\QueryProvider; #[ApiResource( operations: [ @@ -68,13 +66,11 @@ ], ], exceptionToStatus: [HookNotFoundException::class => 404], - provider: QueryProvider::class, CQRSQuery: GetHookStatus::class, scopes: ['hook_read'] ), - new CQRSPartialUpdate( + new CQRSUpdate( uriTemplate: '/hook-status', - processor: CommandProcessor::class, CQRSCommand: UpdateHookStatusCommand::class, scopes: ['hook_write'] ), @@ -82,11 +78,9 @@ uriTemplate: '/hooks/{id}', requirements: ['id' => '\d+'], exceptionToStatus: [HookNotFoundException::class => 404], - provider: QueryProvider::class, CQRSQuery: GetHook::class, scopes: ['hook_read'] ), - // PR module + inte module + convertir en custom ce qu'il reste en natif new DQBPaginatedList( uriTemplate: '/hooks', provider: QueryListProvider::class, diff --git a/tests/Integration/ApiPlatform/ListHooksTest.php b/tests/Integration/ApiPlatform/ListHooksTest.php new file mode 100644 index 0000000..b684601 --- /dev/null +++ b/tests/Integration/ApiPlatform/ListHooksTest.php @@ -0,0 +1,89 @@ + + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) + */ + +declare(strict_types=1); + +namespace PsApiResourcesTest\Integration\ApiPlatform; + +use PrestaShop\Module\APIResources\ApiPlatform\Resources\Hook; +use Tests\Resources\DatabaseDump; + +class ListHooksTest extends ApiTestCase +{ + public static function setUpBeforeClass(): void + { + parent::setUpBeforeClass(); + DatabaseDump::restoreTables(['hook']); + } + + public static function tearDownAfterClass(): void + { + parent::tearDownAfterClass(); + DatabaseDump::restoreTables(['hook']); + } + + public function testListHooks(): void + { + $hooks = $this->generateHooks(); + $bearerToken = $this->getBearerToken([ + 'hook_read', + 'hook_write', + ]); + + $response = static::createClient()->request('GET', '/api/hooks', ['auth_bearer' => $bearerToken]); + self::assertResponseStatusCodeSame(200); + self::assertCount(50, json_decode($response->getContent())->items); + + $response = static::createClient()->request('GET', '/api/hooks', ['auth_bearer' => $bearerToken, 'query' => ['limit' => '10']]); + self::assertResponseStatusCodeSame(200); + self::assertCount(10, json_decode($response->getContent())->items); + + static::createClient()->request('GET', '/api/hooks'); + self::assertResponseStatusCodeSame(401); + + foreach ($hooks as $hook) { + $hook->delete(); + } + } + + /** + * @return Hook[] + */ + protected function generateHooks(): array + { + $hooks = []; + for ($i = 0; $i <= 50; ++$i) { + $hook = new \Hook(); + $hook->name = 'testHook' . $i; + $hook->active = true; + $hook->add(); + $hooks[] = $hook; + } + + return $hooks; + } +}