jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/356875 )

Change subject: Fix error serialization in payments.api
......................................................................


Fix error serialization in payments.api

Change-Id: I3266a4dfcc33d0bd95cd5ec7cf472425357f4288
---
M gateway_common/donation.api.php
1 file changed, 8 insertions(+), 7 deletions(-)

Approvals:
  XenoRyet: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/gateway_common/donation.api.php b/gateway_common/donation.api.php
index b8959f0..c90896b 100644
--- a/gateway_common/donation.api.php
+++ b/gateway_common/donation.api.php
@@ -30,7 +30,7 @@
                $validated_ok = $gatewayObj->validatedOK();
                if ( !$validated_ok ) {
                        $errors = $gatewayObj->getErrorState()->getErrors();
-                       $outputResult['errors'] = $this->serializeErrors( 
$errors );
+                       $outputResult['errors'] = $this->serializeErrors( 
$errors, $gatewayObj );
                        // FIXME: What is this junk?  Smaller API, like 
getResult()->addErrors
                        $this->getResult()->setIndexedTagName( 
$outputResult['errors'], 'error' );
                        $this->getResult()->addValue( null, 'result', 
$outputResult );
@@ -81,7 +81,7 @@
                }
                $errors = $result->getErrors();
                if ( !empty( $errors ) ) {
-                       $outputResult['errors'] = $this->serializeErrors( 
$errors );
+                       $outputResult['errors'] = $this->serializeErrors( 
$errors, $gatewayObj );
                        $this->getResult()->setIndexedTagName( 
$outputResult['errors'], 'error' );
                }
 
@@ -91,7 +91,7 @@
                $this->getResult()->addValue( null, 'result', $outputResult );
        }
 
-       protected function serializeErrors( $errors ) {
+       protected function serializeErrors( $errors, GatewayAdapter $adapter ) {
                $serializedErrors = array();
                foreach( $errors as $error ) {
                        if ( $error instanceof ValidationError ) {
@@ -100,11 +100,12 @@
                                        $error->getMessageParams()
                                );
                                $serializedErrors[$error->getField()] = 
$message;
-                       } else {
-                               $message = WmfFramework::formatMessage(
-                                       $error->getMessageKey()
-                               );
+                       } elseif ( $error instanceof PaymentError ) {
+                               $message = 
$adapter->getErrorMapByCodeAndTranslate( $error->getErrorCode() );
                                $serializedErrors['general'][] = $message;
+                       } else {
+                               $logger = DonationLoggerFactory::getLogger( 
$adapter );
+                               $logger->error( 'API trying to serialize 
unknown error type: ' . get_class( $error ) );
                        }
                }
                return $serializedErrors;

-- 
To view, visit https://gerrit.wikimedia.org/r/356875
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3266a4dfcc33d0bd95cd5ec7cf472425357f4288
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Ejegg <ej...@ejegg.com>
Gerrit-Reviewer: AndyRussG <andrew.green...@gmail.com>
Gerrit-Reviewer: Awight <awi...@wikimedia.org>
Gerrit-Reviewer: Cdentinger <cdentin...@wikimedia.org>
Gerrit-Reviewer: XenoRyet <dkozlow...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to