Awight has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/277981

Change subject: Split ContributionTrackingPlusUnique into a reusable thing
......................................................................

Split ContributionTrackingPlusUnique into a reusable thing

Change-Id: Ic55fd59ae1a9ee35ab2cf94291ff82045c7e8582
---
M DonationInterface.php
A gateway_common/ContributionTrackingPlusUnique.php
M globalcollect_gateway/globalcollect.adapter.php
3 files changed, 23 insertions(+), 14 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface 
refs/changes/81/277981/1

diff --git a/DonationInterface.php b/DonationInterface.php
index ce62bca..533b5c4 100644
--- a/DonationInterface.php
+++ b/DonationInterface.php
@@ -39,6 +39,7 @@
  */
 $wgAutoloadClasses['AmountInCents'] = __DIR__ . 
'/gateway_common/AmountInCents.php';
 $wgAutoloadClasses['BrazilianFiscalNumber'] = __DIR__ . 
'/gateway_common/BrazilianFiscalNumber.php';
+$wgAutoloadClasses['ContributionTrackingPlusUnique'] = __DIR__ . 
'/gateway_common/ContributionTrackingPlusUnique.php';
 $wgAutoloadClasses['CurrencyRates'] = __DIR__ . 
'/gateway_common/CurrencyRates.php';
 $wgAutoloadClasses['CurrencyRatesModule'] = __DIR__ . 
'/modules/CurrencyRatesModule.php';
 $wgAutoloadClasses['CyclicalArray'] = __DIR__ . 
'/globalcollect_gateway/CyclicalArray.php';
diff --git a/gateway_common/ContributionTrackingPlusUnique.php 
b/gateway_common/ContributionTrackingPlusUnique.php
new file mode 100644
index 0000000..ce55166
--- /dev/null
+++ b/gateway_common/ContributionTrackingPlusUnique.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Some gateways need a unique ID for every API call, so we append a
+ * pseudorandom value to the contribution_tracking ID.
+ */
+class ContributionTrackingPlusUnique implements StagingHelper, UnstagingHelper 
{
+       public function stage( GatewayType $adapter, $unstagedData, 
&$stagedData ) {
+               $ctid = $unstagedData['contribution_tracking_id'];
+               //append timestamp to ctid
+               $ctid .= '.' . (( microtime( true ) * 1000 ) % 100000); //least 
significant five
+               $stagedData['contribution_tracking_id'] = $ctid;
+       }
+
+       public function unstage( GatewayType $adapter, $stagedData, 
&$unstagedData ) {
+               $ctid = $stagedData['contribution_tracking_id'];
+               $ctid = explode( '.', $ctid );
+               $ctid = $ctid[0];
+               $unstagedData['contribution_tracking_id'] = $ctid;
+       }
+}
diff --git a/globalcollect_gateway/globalcollect.adapter.php 
b/globalcollect_gateway/globalcollect.adapter.php
index 2bf8cf7..7fd931e 100644
--- a/globalcollect_gateway/globalcollect.adapter.php
+++ b/globalcollect_gateway/globalcollect.adapter.php
@@ -2292,6 +2292,7 @@
        public function defineDataTransformers() {
                $this->data_transformers = array_merge( 
parent::getCoreDataTransformers(), array(
                        new BrazilianFiscalNumber(),
+                       new ContributionTrackingPlusUnique(),
                ) );
        }
 
@@ -2656,20 +2657,6 @@
                                
$this->transactions['INSERT_ORDERWITHPAYMENT']['values']['PURCHASETYPE'] = '1';
                                break;
                }
-       }
-
-       protected function stage_contribution_tracking_id() {
-               $ctid = $this->unstaged_data['contribution_tracking_id'];
-               //append timestamp to ctid
-               $ctid .= '.' . (( microtime( true ) * 1000 ) % 100000); //least 
significant five
-               $this->staged_data['contribution_tracking_id'] = $ctid;
-       }
-
-       protected function unstage_contribution_tracking_id() {
-               $ctid = $this->staged_data['contribution_tracking_id'];
-               $ctid = explode( '.', $ctid );
-               $ctid = $ctid[0];
-               $this->unstaged_data['contribution_tracking_id'] = $ctid;
        }
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic55fd59ae1a9ee35ab2cf94291ff82045c7e8582
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to