Details
diff --git a/payment/src/main/java/com/ning/billing/payment/core/ProcessorBase.java b/payment/src/main/java/com/ning/billing/payment/core/ProcessorBase.java
index 7d542e9..d10b308 100644
--- a/payment/src/main/java/com/ning/billing/payment/core/ProcessorBase.java
+++ b/payment/src/main/java/com/ning/billing/payment/core/ProcessorBase.java
@@ -97,7 +97,7 @@ public abstract class ProcessorBase {
}
protected PaymentPluginApi getPaymentProviderPlugin(final UUID paymentMethodId) throws PaymentApiException {
- final PaymentMethodModelDao methodDao = paymentDao.getPaymentMethod(paymentMethodId);
+ final PaymentMethodModelDao methodDao = paymentDao.getPaymentMethodIncludedDeleted(paymentMethodId);
if (methodDao == null) {
log.error("PaymentMethod dpes not exist", paymentMethodId);
throw new PaymentApiException(ErrorCode.PAYMENT_NO_SUCH_PAYMENT_METHOD, paymentMethodId);
diff --git a/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java b/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java
index 80676f3..b4271ac 100644
--- a/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java
+++ b/payment/src/main/java/com/ning/billing/payment/dao/AuditedPaymentDao.java
@@ -16,7 +16,6 @@
package com.ning.billing.payment.dao;
import java.math.BigDecimal;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -26,9 +25,6 @@ import org.skife.jdbi.v2.IDBI;
import org.skife.jdbi.v2.Transaction;
import org.skife.jdbi.v2.TransactionStatus;
-import com.google.inject.Inject;
-
-import com.ning.billing.payment.api.PaymentMethod;
import com.ning.billing.payment.api.PaymentStatus;
import com.ning.billing.payment.dao.RefundModelDao.RefundStatus;
import com.ning.billing.payment.retry.PluginFailureRetryService.PluginFailureRetryServiceScheduler;
@@ -38,6 +34,8 @@ import com.ning.billing.util.dao.EntityAudit;
import com.ning.billing.util.dao.EntityHistory;
import com.ning.billing.util.dao.TableName;
+import com.google.inject.Inject;
+
public class AuditedPaymentDao implements PaymentDao {
@@ -335,6 +333,11 @@ public class AuditedPaymentDao implements PaymentDao {
return getPaymentMethodInTransaction(paymentMethodSqlDao, paymentMethodId);
}
+ @Override
+ public PaymentMethodModelDao getPaymentMethodIncludedDeleted(final UUID paymentMethodId) {
+ return paymentMethodSqlDao.getPaymentMethodIncludedDelete(paymentMethodId.toString());
+ }
+
private PaymentMethodModelDao getPaymentMethodInTransaction(final PaymentMethodSqlDao transactional, final UUID paymentMethodId) {
return transactional.getPaymentMethod(paymentMethodId.toString());
}
diff --git a/payment/src/main/java/com/ning/billing/payment/dao/PaymentDao.java b/payment/src/main/java/com/ning/billing/payment/dao/PaymentDao.java
index 78c4630..326389e 100644
--- a/payment/src/main/java/com/ning/billing/payment/dao/PaymentDao.java
+++ b/payment/src/main/java/com/ning/billing/payment/dao/PaymentDao.java
@@ -18,7 +18,6 @@ package com.ning.billing.payment.dao;
import java.util.List;
import java.util.UUID;
-import com.ning.billing.payment.api.PaymentMethod;
import com.ning.billing.payment.api.PaymentStatus;
import com.ning.billing.payment.dao.RefundModelDao.RefundStatus;
import com.ning.billing.util.callcontext.CallContext;
@@ -60,6 +59,8 @@ public interface PaymentDao {
public PaymentMethodModelDao getPaymentMethod(final UUID paymentMethodId);
+ public PaymentMethodModelDao getPaymentMethodIncludedDeleted(final UUID paymentMethodId);
+
public List<PaymentMethodModelDao> getPaymentMethods(final UUID accountId);
public void deletedPaymentMethod(final UUID paymentMethodId);
diff --git a/payment/src/main/java/com/ning/billing/payment/dao/PaymentMethodSqlDao.java b/payment/src/main/java/com/ning/billing/payment/dao/PaymentMethodSqlDao.java
index 3065883..33b101e 100644
--- a/payment/src/main/java/com/ning/billing/payment/dao/PaymentMethodSqlDao.java
+++ b/payment/src/main/java/com/ning/billing/payment/dao/PaymentMethodSqlDao.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2010-2011 Ning, Inc.
*
* Ning licenses this file to you under the Apache License, version 2.0
@@ -59,6 +59,9 @@ public interface PaymentMethodSqlDao extends Transactional<PaymentMethodSqlDao>,
PaymentMethodModelDao getPaymentMethod(@Bind("id") final String paymentMethodId);
@SqlQuery
+ PaymentMethodModelDao getPaymentMethodIncludedDelete(@Bind("id") final String paymentMethodId);
+
+ @SqlQuery
List<PaymentMethodModelDao> getPaymentMethods(@Bind("accountId") final String accountId);
diff --git a/payment/src/main/resources/com/ning/billing/payment/dao/PaymentMethodSqlDao.sql.stg b/payment/src/main/resources/com/ning/billing/payment/dao/PaymentMethodSqlDao.sql.stg
index 75662f3..bff218a 100644
--- a/payment/src/main/resources/com/ning/billing/payment/dao/PaymentMethodSqlDao.sql.stg
+++ b/payment/src/main/resources/com/ning/billing/payment/dao/PaymentMethodSqlDao.sql.stg
@@ -35,6 +35,12 @@ getPaymentMethod() ::= <<
WHERE id = :id AND is_active = 1;
>>
+getPaymentMethodIncludedDelete() ::= <<
+ SELECT <paymentMethodFields()>
+ FROM payment_methods
+ WHERE id = :id;
+>>
+
getPaymentMethods() ::= <<
SELECT <paymentMethodFields()>
FROM payment_methods
diff --git a/payment/src/test/java/com/ning/billing/payment/dao/MockPaymentDao.java b/payment/src/test/java/com/ning/billing/payment/dao/MockPaymentDao.java
index b8b14bc..0c08df9 100644
--- a/payment/src/test/java/com/ning/billing/payment/dao/MockPaymentDao.java
+++ b/payment/src/test/java/com/ning/billing/payment/dao/MockPaymentDao.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
-import com.ning.billing.payment.api.PaymentMethod;
import com.ning.billing.payment.api.PaymentStatus;
import com.ning.billing.payment.dao.RefundModelDao.RefundStatus;
import com.ning.billing.util.callcontext.CallContext;
@@ -202,4 +201,10 @@ public class MockPaymentDao implements PaymentDao {
UUID paymentMethodId) {
return null;
}
+
+ @Override
+ public PaymentMethodModelDao getPaymentMethodIncludedDeleted(
+ UUID paymentMethodId) {
+ return getPaymentMethod(paymentMethodId);
+ }
}