From f5c9190fe2845d7031528896e69ff3b5018d16e9 Mon Sep 17 00:00:00 2001 From: khushboos Date: Mon, 11 Dec 2023 09:19:58 +0100 Subject: [PATCH 1/9] ECP-8327 Allow saving multiple statedata --- .../StoreApi/OrderApi/OrderApiController.php | 11 +++++++---- src/Handlers/AbstractPaymentMethodHandler.php | 6 ++---- src/Service/PaymentStateDataService.php | 15 ++------------- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 3f4da9e7..e1a7c9a6 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -186,10 +186,13 @@ public function giftcardStateData(SalesChannelContext $context, Request $request * @param Request $request * @return JsonResponse */ - public function deleteGiftCardStateData(SalesChannelContext $context, Request $request): JsonResponse + public function deleteGiftCardStateData(SalesChannelContext $context, Request $request) { - $this->paymentStateDataService->deletePaymentStateDataFromContextToken($context->getToken()); - - return new JsonResponse(['token' => $context->getToken()]); + $stateData = json_decode($request->request->get('stateData', ''), true); + if (!empty($stateData)) { + $Id = $stateData['id']; + $this->paymentStateDataService->deletePaymentStateData($Id); + return new JsonResponse(['token' => $context->getToken()]); + } } } diff --git a/src/Handlers/AbstractPaymentMethodHandler.php b/src/Handlers/AbstractPaymentMethodHandler.php index 4622aff6..a4c50c05 100644 --- a/src/Handlers/AbstractPaymentMethodHandler.php +++ b/src/Handlers/AbstractPaymentMethodHandler.php @@ -321,8 +321,7 @@ public function pay( if ($storedStateData) { // Remove the used state.data - $this->paymentStateDataService->deletePaymentStateDataFromContextToken($salesChannelContext->getToken()); - } + $this->paymentStateDataService->deletePaymentStateData($storedStateData['id']); } try { $this->clientService->logRequest( @@ -870,8 +869,7 @@ public function handleAdyenOrderPayment( ) - $partialAmount; // Remove the used state.data - $this->paymentStateDataService->deletePaymentStateDataFromContextToken($salesChannelContext->getToken()); - } + $this->paymentStateDataService->deletePaymentStateData($storedStateData['id']); } /** * @param SalesChannelContext $salesChannelContext diff --git a/src/Service/PaymentStateDataService.php b/src/Service/PaymentStateDataService.php index 6b395039..b0ed33e5 100644 --- a/src/Service/PaymentStateDataService.php +++ b/src/Service/PaymentStateDataService.php @@ -115,24 +115,13 @@ public function updateStateDataContextToken(PaymentStateDataEntity $stateData, $ /** * @param PaymentStateDataEntity $stateData */ - public function deletePaymentStateData(PaymentStateDataEntity $stateData): void + public function deletePaymentStateData(string $Id): void { $this->paymentStateDataRepository->delete( [ - ['id' => $stateData->getId()], + ['id' => $Id], ], Context::createDefaultContext() ); } - - /** - * @param string $contextToken - */ - public function deletePaymentStateDataFromContextToken(string $contextToken): void - { - $stateData = $this->getPaymentStateDataFromContextToken($contextToken); - if (!empty($stateData)) { - $this->deletePaymentStateData($stateData); - } - } } From 870e76b57f1806ac9e140e448353504c5b428e3b Mon Sep 17 00:00:00 2001 From: khushboos Date: Mon, 11 Dec 2023 09:45:19 +0100 Subject: [PATCH 2/9] ECP-8327 Allow saving multiple statedata --- src/Handlers/AbstractPaymentMethodHandler.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Handlers/AbstractPaymentMethodHandler.php b/src/Handlers/AbstractPaymentMethodHandler.php index a4c50c05..60df853f 100644 --- a/src/Handlers/AbstractPaymentMethodHandler.php +++ b/src/Handlers/AbstractPaymentMethodHandler.php @@ -321,7 +321,8 @@ public function pay( if ($storedStateData) { // Remove the used state.data - $this->paymentStateDataService->deletePaymentStateData($storedStateData['id']); } + $this->paymentStateDataService->deletePaymentStateData($storedStateData['id']); + } try { $this->clientService->logRequest( @@ -869,7 +870,8 @@ public function handleAdyenOrderPayment( ) - $partialAmount; // Remove the used state.data - $this->paymentStateDataService->deletePaymentStateData($storedStateData['id']); } + $this->paymentStateDataService->deletePaymentStateData($storedStateData['id']); + } /** * @param SalesChannelContext $salesChannelContext From 1ab236a2705643f16b9233917ef988493d7b50bf Mon Sep 17 00:00:00 2001 From: khushboos Date: Tue, 19 Dec 2023 11:57:51 +0100 Subject: [PATCH 3/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- src/Controller/StoreApi/OrderApi/OrderApiController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index e1a7c9a6..36ebf05a 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -194,5 +194,7 @@ public function deleteGiftCardStateData(SalesChannelContext $context, Request $r $this->paymentStateDataService->deletePaymentStateData($Id); return new JsonResponse(['token' => $context->getToken()]); } + else + return new JsonResponse('StateData is not available.'); } } From 438dfc499660b0b725e4066d955680bb1f8622f8 Mon Sep 17 00:00:00 2001 From: khushboos Date: Thu, 4 Jan 2024 16:10:20 +0100 Subject: [PATCH 4/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- src/Controller/StoreApi/OrderApi/OrderApiController.php | 5 +++-- src/Handlers/AbstractPaymentMethodHandler.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 36ebf05a..7e890368 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -186,14 +186,15 @@ public function giftcardStateData(SalesChannelContext $context, Request $request * @param Request $request * @return JsonResponse */ - public function deleteGiftCardStateData(SalesChannelContext $context, Request $request) + public function deleteGiftCardStateData(SalesChannelContext $context, Request $request): JsonResponse { $stateData = json_decode($request->request->get('stateData', ''), true); - if (!empty($stateData)) { + if (is_array($stateData) && array_key_exists('id', $stateData)) { $Id = $stateData['id']; $this->paymentStateDataService->deletePaymentStateData($Id); return new JsonResponse(['token' => $context->getToken()]); } + //return exception else return new JsonResponse('StateData is not available.'); } diff --git a/src/Handlers/AbstractPaymentMethodHandler.php b/src/Handlers/AbstractPaymentMethodHandler.php index 60df853f..5cccf299 100644 --- a/src/Handlers/AbstractPaymentMethodHandler.php +++ b/src/Handlers/AbstractPaymentMethodHandler.php @@ -813,7 +813,7 @@ public function handleAdyenOrderPayment( // order has been created, use state data from db as the first payment $transactionId = $transaction->getOrderTransaction()->getId(); $storedStateData = $this->getStoredStateData($salesChannelContext, $transactionId); - if (!$storedStateData) { + if (is_null($storedStateData)) { $message = sprintf( "There was an error with the giftcard payment. Order number: %s; Missing: giftcard data", $transaction->getOrder()->getOrderNumber() From e40023fbaa4b2161b4d1030e5e449e9444816930 Mon Sep 17 00:00:00 2001 From: khushboos Date: Fri, 5 Jan 2024 11:12:43 +0100 Subject: [PATCH 5/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- src/Controller/StoreApi/OrderApi/OrderApiController.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 7e890368..097e8810 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -195,7 +195,8 @@ public function deleteGiftCardStateData(SalesChannelContext $context, Request $r return new JsonResponse(['token' => $context->getToken()]); } //return exception - else + else { return new JsonResponse('StateData is not available.'); + } } -} +} From f06d4ebd9e7c930ae66a29646be75eaff8d04d4d Mon Sep 17 00:00:00 2001 From: khushboos Date: Fri, 5 Jan 2024 11:16:11 +0100 Subject: [PATCH 6/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- .../StoreApi/OrderApi/OrderApiController.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 097e8810..62a032f9 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -75,11 +75,12 @@ class OrderApiController */ public function __construct( PaymentMethodsBalanceService $paymentMethodsBalanceService, - OrdersService $ordersService, - OrdersCancelService $ordersCancelService, - PaymentStateDataService $paymentStateDataService, - LoggerInterface $logger - ) { + OrdersService $ordersService, + OrdersCancelService $ordersCancelService, + PaymentStateDataService $paymentStateDataService, + LoggerInterface $logger + ) + { $this->paymentMethodsBalanceService = $paymentMethodsBalanceService; $this->ordersService = $ordersService; $this->ordersCancelService = $ordersCancelService; @@ -167,9 +168,9 @@ public function giftcardStateData(SalesChannelContext $context, Request $request $context->getToken(), json_encode($stateData), [ - 'amount' => (int) $request->request->get('amount'), + 'amount' => (int)$request->request->get('amount'), 'paymentMethodId' => $request->request->get('paymentMethodId'), - 'balance' => (int) $request->request->get('balance'), + 'balance' => (int)$request->request->get('balance'), ] ); @@ -199,4 +200,4 @@ public function deleteGiftCardStateData(SalesChannelContext $context, Request $r return new JsonResponse('StateData is not available.'); } } -} +} From 35310f63b2befbd231f410f2dfdb3662a9442e80 Mon Sep 17 00:00:00 2001 From: khushboos Date: Fri, 5 Jan 2024 11:18:27 +0100 Subject: [PATCH 7/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- src/Controller/StoreApi/OrderApi/OrderApiController.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 62a032f9..41237ad3 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -79,8 +79,7 @@ public function __construct( OrdersCancelService $ordersCancelService, PaymentStateDataService $paymentStateDataService, LoggerInterface $logger - ) - { + ) { $this->paymentMethodsBalanceService = $paymentMethodsBalanceService; $this->ordersService = $ordersService; $this->ordersCancelService = $ordersCancelService; @@ -194,9 +193,8 @@ public function deleteGiftCardStateData(SalesChannelContext $context, Request $r $Id = $stateData['id']; $this->paymentStateDataService->deletePaymentStateData($Id); return new JsonResponse(['token' => $context->getToken()]); - } - //return exception - else { + } else { + //return exception return new JsonResponse('StateData is not available.'); } } From a1a30b2472a79485dd0fde4aa3451466825e3a2b Mon Sep 17 00:00:00 2001 From: khushboos Date: Fri, 5 Jan 2024 11:49:37 +0100 Subject: [PATCH 8/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- src/Controller/StoreApi/OrderApi/OrderApiController.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 41237ad3..966b1774 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -194,8 +194,7 @@ public function deleteGiftCardStateData(SalesChannelContext $context, Request $r $this->paymentStateDataService->deletePaymentStateData($Id); return new JsonResponse(['token' => $context->getToken()]); } else { - //return exception - return new JsonResponse('StateData is not available.'); + return new JsonResponse('StateData is not available.',404); } } } From d9a05cb66389f562c78bb989ddd300c56161a087 Mon Sep 17 00:00:00 2001 From: khushboos Date: Fri, 5 Jan 2024 11:59:44 +0100 Subject: [PATCH 9/9] ECP-8327 Allow saving multiple statedata - Returning JsonResponse for the else part --- src/Controller/StoreApi/OrderApi/OrderApiController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller/StoreApi/OrderApi/OrderApiController.php b/src/Controller/StoreApi/OrderApi/OrderApiController.php index 966b1774..3974682e 100644 --- a/src/Controller/StoreApi/OrderApi/OrderApiController.php +++ b/src/Controller/StoreApi/OrderApi/OrderApiController.php @@ -194,7 +194,7 @@ public function deleteGiftCardStateData(SalesChannelContext $context, Request $r $this->paymentStateDataService->deletePaymentStateData($Id); return new JsonResponse(['token' => $context->getToken()]); } else { - return new JsonResponse('StateData is not available.',404); + return new JsonResponse('StateData is not available.', 404); } } }