killbill-aplcache

Cleanup in payment api

12/13/2011 5:16:22 AM

Details

diff --git a/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java b/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
index 6d03a61..97678c2 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
@@ -21,7 +21,9 @@ import java.util.List;
 import javax.annotation.Nullable;
 
 public interface PaymentApi {
-    Either<PaymentError, PaymentMethodInfo> getPaymentMethod(@Nullable String accountId, String paymentMethodId);
+    Either<PaymentError, PaymentMethodInfo> getPaymentMethod(@Nullable String accountKey, String paymentMethodId);
 
-    Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(String accountId);
+    Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(String accountKey);
+
+    Either<PaymentError, Void> updatePaymentGateway(String accountKey);
 }
diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
index e997a9b..c0640d2 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
@@ -40,31 +40,34 @@ public class DefaultPaymentApi implements PaymentApi {
 
     @Override
     public Either<PaymentError, PaymentMethodInfo> getPaymentMethod(@Nullable String accountId, String paymentMethodId) {
+        final PaymentProviderPlugin plugin = getPaymentProviderPlugin(accountId);
+        return plugin.getPaymentMethodInfo(paymentMethodId);
+    }
+
+    private PaymentProviderPlugin getPaymentProviderPlugin(String accountKey) {
         final String paymentProviderName;
 
-        if (accountId == null) {
+        if (accountKey == null) {
             // TODO: get provider name from config to support null
             paymentProviderName = null;
         }
         else {
-            final IAccount account = accountUserApi.getAccountFromId(UUID.fromString(accountId));
+            final IAccount account = accountUserApi.getAccountFromId(UUID.fromString(accountKey));
             paymentProviderName = account.getFieldValue(RequestProcessor.PAYMENT_PROVIDER_KEY);
         }
-        final PaymentProviderPlugin plugin = pluginRegistry.getPlugin(paymentProviderName);
 
-        return plugin.getPaymentMethodInfo(paymentMethodId);
+        return pluginRegistry.getPlugin(paymentProviderName);
     }
 
     @Override
     public Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(String accountKey) {
-        final String paymentProviderName;
-        paymentProviderName = null;
-
-//        final IAccount account = accountUserApi.getAccountByKey(accountKey);
-//        paymentProviderName = account.getFieldValue(RequestProcessor.PAYMENT_PROVIDER_KEY);
-
-        final PaymentProviderPlugin plugin = pluginRegistry.getPlugin(paymentProviderName);
-
+        final PaymentProviderPlugin plugin = getPaymentProviderPlugin(accountKey);
         return plugin.getPaymentMethods(accountKey);
     }
+
+    @Override
+    public Either<PaymentError, Void> updatePaymentGateway(String accountKey) {
+        final PaymentProviderPlugin plugin = getPaymentProviderPlugin(accountKey);
+        return plugin.updatePaymentGateway(accountKey);
+    }
 }
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
index 0579119..d3e92d2 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
@@ -34,5 +34,6 @@ public interface PaymentProviderPlugin {
     Either<PaymentError, PaymentMethodInfo> getPaymentMethodInfo(String paymentMethodId);
     Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(String screenName);
     Either<PaymentError, PaypalPaymentMethodInfo> addPaypalPaymentMethod(IAccount account, PaypalPaymentMethodInfo paypalPaymentMethod);
+    Either<PaymentError, Void> updatePaymentGateway(String accountKey);
 
 }
diff --git a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
index 37a35ad..39724b4 100644
--- a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
+++ b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
@@ -55,25 +55,31 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
 
     @Override
     public Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(IAccount account) {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO
+        return Either.left(new PaymentError("unknown", "Not implemented"));
     }
 
     @Override
     public Either<PaymentError, PaymentMethodInfo> getPaymentMethodInfo(String paymentMethodId) {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO
+        return Either.left(new PaymentError("unknown", "Not implemented"));
     }
 
     @Override
     public Either<PaymentError, List<PaymentMethodInfo>> getPaymentMethods(String accountId) {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO
+        return Either.left(new PaymentError("unknown", "Not implemented"));
     }
 
     @Override
     public Either<PaymentError, PaypalPaymentMethodInfo> addPaypalPaymentMethod(IAccount account, PaypalPaymentMethodInfo paypalPaymentMethod) {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO
+        return Either.left(new PaymentError("unknown", "Not implemented"));
+    }
+
+    @Override
+    public Either<PaymentError, Void> updatePaymentGateway(String accountKey) {
+        // TODO
+        return Either.left(new PaymentError("unknown", "Not implemented"));
     }
 }