Browse Source

do not issue refunds for non-refundable payment types

tags/v0.1.8
Jonathan Cobb 4 years ago
parent
commit
cfa9259c1b
2 changed files with 6 additions and 0 deletions
  1. +2
    -0
      bubble-server/src/main/java/bubble/model/bill/PaymentMethodType.java
  2. +4
    -0
      bubble-server/src/main/java/bubble/service/bill/StandardRefundService.java

+ 2
- 0
bubble-server/src/main/java/bubble/model/bill/PaymentMethodType.java View File

@@ -13,4 +13,6 @@ public enum PaymentMethodType {


@JsonCreator public static PaymentMethodType fromString(String v) { return enumFromString(PaymentMethodType.class, v); } @JsonCreator public static PaymentMethodType fromString(String v) { return enumFromString(PaymentMethodType.class, v); }


public boolean refundable() { return this == credit; }

} }

+ 4
- 0
bubble-server/src/main/java/bubble/service/bill/StandardRefundService.java View File

@@ -40,6 +40,10 @@ public class StandardRefundService extends SimpleDaemon implements RefundService
for (AccountPlan accountPlan : pendingPlans) { for (AccountPlan accountPlan : pendingPlans) {
try { try {
final AccountPaymentMethod paymentMethod = paymentMethodDAO.findByUuid(accountPlan.getPaymentMethod()); final AccountPaymentMethod paymentMethod = paymentMethodDAO.findByUuid(accountPlan.getPaymentMethod());
if (!paymentMethod.getPaymentMethodType().refundable()) {
log.info("process: not issuing refund for plan "+accountPlan.getUuid()+" because paymentMethodType="+paymentMethod.getPaymentMethodType());
continue;
}
final CloudService paymentCloud = cloudDAO.findByUuid(paymentMethod.getCloud()); final CloudService paymentCloud = cloudDAO.findByUuid(paymentMethod.getCloud());
final PaymentServiceDriver paymentDriver = paymentCloud.getPaymentDriver(configuration); final PaymentServiceDriver paymentDriver = paymentCloud.getPaymentDriver(configuration);
paymentDriver.refund(accountPlan.getUuid()); paymentDriver.refund(accountPlan.getUuid());


Loading…
Cancel
Save