From e63baa6c430ae6608b072efa1969b53118dcfae3 Mon Sep 17 00:00:00 2001 From: Narek Zakarian Date: Tue, 30 Jan 2024 17:42:59 +0400 Subject: [PATCH] Add the FraudProcessorResponse to Authorization --- .../src/Entity/Authorization.php | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/modules/ppcp-api-client/src/Entity/Authorization.php b/modules/ppcp-api-client/src/Entity/Authorization.php index ae8e8f591..007e12475 100644 --- a/modules/ppcp-api-client/src/Entity/Authorization.php +++ b/modules/ppcp-api-client/src/Entity/Authorization.php @@ -28,19 +28,29 @@ class Authorization { */ private $authorization_status; + /** + * The fraud processor response (AVS, CVV ...). + * + * @var FraudProcessorResponse|null + */ + protected $fraud_processor_response; + /** * Authorization constructor. * - * @param string $id The id. - * @param AuthorizationStatus $authorization_status The status. + * @param string $id The id. + * @param AuthorizationStatus $authorization_status The status. + * @param FraudProcessorResponse|null $fraud_processor_response The fraud processor response (AVS, CVV ...). */ public function __construct( string $id, - AuthorizationStatus $authorization_status + AuthorizationStatus $authorization_status, + ?FraudProcessorResponse $fraud_processor_response ) { - $this->id = $id; - $this->authorization_status = $authorization_status; + $this->id = $id; + $this->authorization_status = $authorization_status; + $this->fraud_processor_response = $fraud_processor_response; } /** @@ -71,15 +81,30 @@ class Authorization { $this->authorization_status->is( AuthorizationStatus::PENDING ); } + /** + * Returns the fraud processor response (AVS, CVV ...). + * + * @return FraudProcessorResponse|null + */ + public function fraud_processor_response() : ?FraudProcessorResponse { + return $this->fraud_processor_response; + } + /** * Returns the object as array. * * @return array */ public function to_array(): array { - return array( + $data = array( 'id' => $this->id, 'status' => $this->authorization_status->name(), ); + + if ( $this->fraud_processor_response ) { + $data['fraud_processor_response'] = $this->fraud_processor_response->to_array(); + } + + return $data; } }