Merge pull request #331 from woocommerce/pcp-327-refactor

Extract is_voidable_authorization
This commit is contained in:
Emili Castells 2021-10-15 16:58:38 +02:00 committed by GitHub
commit 91ce420cb5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 25 deletions

View file

@ -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.
*

View file

@ -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 );
}
}

View file

@ -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 );
}
}