From b0396489c9a3ed52b94a29c8758f9a960fa087a3 Mon Sep 17 00:00:00 2001 From: Alex P Date: Fri, 15 Oct 2021 16:20:00 +0300 Subject: [PATCH] Extract is_voidable_authorization --- .../src/Entity/Authorization.php | 10 ++++++++++ .../src/Gateway/ProcessPaymentTrait.php | 15 +++------------ .../src/Processor/RefundProcessor.php | 17 ++++------------- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/modules/ppcp-api-client/src/Entity/Authorization.php b/modules/ppcp-api-client/src/Entity/Authorization.php index a11e50947..ae8e8f591 100644 --- a/modules/ppcp-api-client/src/Entity/Authorization.php +++ b/modules/ppcp-api-client/src/Entity/Authorization.php @@ -61,6 +61,16 @@ class Authorization { return $this->authorization_status; } + /** + * Checks whether the authorization can be voided. + * + * @return bool + */ + public function is_voidable(): bool { + return $this->authorization_status->is( AuthorizationStatus::CREATED ) || + $this->authorization_status->is( AuthorizationStatus::PENDING ); + } + /** * Returns the object as array. * diff --git a/modules/ppcp-wc-gateway/src/Gateway/ProcessPaymentTrait.php b/modules/ppcp-wc-gateway/src/Gateway/ProcessPaymentTrait.php index e5e547b14..6820cca26 100644 --- a/modules/ppcp-wc-gateway/src/Gateway/ProcessPaymentTrait.php +++ b/modules/ppcp-wc-gateway/src/Gateway/ProcessPaymentTrait.php @@ -206,7 +206,9 @@ trait ProcessPaymentTrait { $voidable_authorizations = array_filter( $payments->authorizations(), - array( $this, 'is_voidable_authorization' ) + function ( Authorization $authorization ): bool { + return $authorization->is_voidable(); + } ); if ( ! $voidable_authorizations ) { throw new RuntimeException( 'No voidable authorizations.' ); @@ -346,15 +348,4 @@ trait ProcessPaymentTrait { * @return Environment */ abstract protected function environment(): Environment; - - /** - * Checks whether the authorization can be voided. - * - * @param Authorization $authorization The authorization to check. - * @return bool - */ - private function is_voidable_authorization( Authorization $authorization ): bool { - return $authorization->status()->is( AuthorizationStatus::CREATED ) || - $authorization->status()->is( AuthorizationStatus::PENDING ); - } } diff --git a/modules/ppcp-wc-gateway/src/Processor/RefundProcessor.php b/modules/ppcp-wc-gateway/src/Processor/RefundProcessor.php index d114554ca..1d588124c 100644 --- a/modules/ppcp-wc-gateway/src/Processor/RefundProcessor.php +++ b/modules/ppcp-wc-gateway/src/Processor/RefundProcessor.php @@ -127,7 +127,9 @@ class RefundProcessor { case self::REFUND_MODE_VOID: $voidable_authorizations = array_filter( $payments->authorizations(), - array( $this, 'is_voidable_authorization' ) + function ( Authorization $authorization ): bool { + return $authorization->is_voidable(); + } ); if ( ! $voidable_authorizations ) { throw new RuntimeException( 'No voidable authorizations.' ); @@ -163,7 +165,7 @@ class RefundProcessor { $authorizations = $payments->authorizations(); if ( $authorizations ) { foreach ( $authorizations as $authorization ) { - if ( $this->is_voidable_authorization( $authorization ) ) { + if ( $authorization->is_voidable() ) { return self::REFUND_MODE_VOID; } } @@ -175,15 +177,4 @@ class RefundProcessor { return self::REFUND_MODE_UNKNOWN; } - - /** - * Checks whether the authorization can be voided. - * - * @param Authorization $authorization The authorization to check. - * @return bool - */ - private function is_voidable_authorization( Authorization $authorization ): bool { - return $authorization->status()->is( AuthorizationStatus::CREATED ) || - $authorization->status()->is( AuthorizationStatus::PENDING ); - } }