killbill-memoizeit

invoice: code review integration Signed-off-by: Pierre-Alexandre

6/17/2018 3:59:15 PM

Details

diff --git a/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java b/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java
index 20bf9b8..ffe6ad5 100644
--- a/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java
+++ b/api/src/main/java/org/killbill/billing/invoice/api/InvoiceInternalApi.java
@@ -84,5 +84,5 @@ public interface InvoiceInternalApi {
 
     public List<InvoicePayment> getInvoicePaymentsByAccount(UUID accountId, TenantContext context);
 
-    public List<InvoicePayment> getInvoicePaymentsByCookieId(String cookieId, TenantContext context);
+    public InvoicePayment getInvoicePaymentByCookieId(String cookieId, TenantContext context);
 }
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java b/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java
index 0a41e22..1460429 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/api/svcs/DefaultInvoiceInternalApi.java
@@ -81,7 +81,7 @@ public class DefaultInvoiceInternalApi implements InvoiceInternalApi {
         return getInvoiceByIdInternal(invoiceId, context);
     }
 
-    private DefaultInvoice getInvoiceByIdInternal(final UUID invoiceId, final InternalTenantContext context)throws InvoiceApiException {
+    private DefaultInvoice getInvoiceByIdInternal(final UUID invoiceId, final InternalTenantContext context) throws InvoiceApiException {
         return new DefaultInvoice(dao.getById(invoiceId, context));
     }
 
@@ -182,7 +182,7 @@ public class DefaultInvoiceInternalApi implements InvoiceInternalApi {
             @Override
             public boolean apply(final InvoicePaymentModelDao input) {
                 return input.getType() == type &&
-                        input.getSuccess();
+                       input.getSuccess();
             }
         }).orNull();
         return resultOrNull != null ? new DefaultInvoicePayment(resultOrNull) : null;
@@ -218,14 +218,8 @@ public class DefaultInvoiceInternalApi implements InvoiceInternalApi {
     }
 
     @Override
-    public List<InvoicePayment> getInvoicePaymentsByCookieId(final String cookieId, final TenantContext context) {
-        return ImmutableList.<InvoicePayment>copyOf(Collections2.transform(dao.getInvoicePaymentsByCookieId(cookieId, internalCallContextFactory.createInternalTenantContext(context.getAccountId(), ObjectType.ACCOUNT, context)),
-                                                                           new Function<InvoicePaymentModelDao, InvoicePayment>() {
-                                                                               @Override
-                                                                               public InvoicePayment apply(final InvoicePaymentModelDao input) {
-                                                                                   return new DefaultInvoicePayment(input);
-                                                                               }
-                                                                           }
-                                                                          ));
+    public InvoicePayment getInvoicePaymentByCookieId(final String cookieId, final TenantContext context) {
+        final InvoicePaymentModelDao invoicePaymentModelDao = dao.getInvoicePaymentByCookieId(cookieId, internalCallContextFactory.createInternalTenantContext(context.getAccountId(), ObjectType.ACCOUNT, context));
+        return new DefaultInvoicePayment(invoicePaymentModelDao);
     }
 }
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
index 7a98a26..e40b3b2 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
@@ -539,11 +539,11 @@ public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, I
     }
 
     @Override
-    public List<InvoicePaymentModelDao> getInvoicePaymentsByCookieId(final String cookieId, final InternalTenantContext context) {
-        return transactionalSqlDao.execute(true, new EntitySqlDaoTransactionWrapper<List<InvoicePaymentModelDao>>() {
+    public InvoicePaymentModelDao getInvoicePaymentByCookieId(final String cookieId, final InternalTenantContext context) {
+        return transactionalSqlDao.execute(true, new EntitySqlDaoTransactionWrapper<InvoicePaymentModelDao>() {
             @Override
-            public List<InvoicePaymentModelDao> inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception {
-                return entitySqlDaoWrapperFactory.become(InvoicePaymentSqlDao.class).getInvoicePaymentsByPaymentCookieId(cookieId, context);
+            public InvoicePaymentModelDao inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception {
+                return entitySqlDaoWrapperFactory.become(InvoicePaymentSqlDao.class).getPaymentForCookieId(cookieId, context);
             }
         });
     }
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
index ed85e64..67c1d1b 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
@@ -64,7 +64,7 @@ public interface InvoiceDao extends EntityDao<InvoiceModelDao, Invoice, InvoiceA
 
     List<InvoicePaymentModelDao> getInvoicePaymentsByAccount(InternalTenantContext context);
 
-    List<InvoicePaymentModelDao> getInvoicePaymentsByCookieId(String cookieId, InternalTenantContext internalTenantContext);
+    InvoicePaymentModelDao getInvoicePaymentByCookieId(String cookieId, InternalTenantContext internalTenantContext);
 
     BigDecimal getAccountBalance(UUID accountId, InternalTenantContext context);
 
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java
index 237d51a..2723b68 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.java
@@ -36,24 +36,19 @@ import org.skife.jdbi.v2.sqlobject.SqlUpdate;
 @KillBillSqlDaoStringTemplate
 public interface InvoicePaymentSqlDao extends EntitySqlDao<InvoicePaymentModelDao, InvoicePayment> {
 
-
     @SqlQuery
     public List<InvoicePaymentModelDao> getByPaymentId(@Bind("paymentId") final String paymentId,
                                                        @SmartBindBean final InternalTenantContext context);
 
     @SqlQuery
     public List<InvoicePaymentModelDao> getAllPaymentsForInvoiceIncludedInit(@Bind("invoiceId") final String invoiceId,
-                                                              @SmartBindBean final InternalTenantContext context);
+                                                                             @SmartBindBean final InternalTenantContext context);
 
     @SqlQuery
     List<InvoicePaymentModelDao> getInvoicePayments(@Bind("paymentId") final String paymentId,
                                                     @SmartBindBean final InternalTenantContext context);
 
     @SqlQuery
-    List<InvoicePaymentModelDao> getInvoicePaymentsByPaymentCookieId(@Bind("paymentCookieId") final String paymentId,
-                                                                     @SmartBindBean final InternalTenantContext context);
-
-    @SqlQuery
     InvoicePaymentModelDao getPaymentForCookieId(@Bind("paymentCookieId") final String paymentCookieId,
                                                  @SmartBindBean final InternalTenantContext context);
 
diff --git a/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg b/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
index e30386f..3552f3c 100644
--- a/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
+++ b/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
@@ -72,16 +72,6 @@ getAllPaymentsForInvoiceIncludedInit() ::= <<
   ;
 >>
 
-
-getInvoicePaymentsByPaymentCookieId() ::= <<
-  SELECT <allTableFields("")>
-  FROM <tableName()>
-  WHERE payment_cookie_id = :paymentCookieId
-  <AND_CHECK_TENANT("")>
-  <defaultOrderBy("")>
-  ;
->>
-
 getInvoicePayments() ::= <<
     SELECT <allTableFields("")>
     FROM <tableName()>
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
index 20bf691..0935479 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
@@ -245,7 +245,7 @@ public class MockInvoiceDao extends MockEntityDaoBase<InvoiceModelDao, Invoice, 
     }
 
     @Override
-    public List<InvoicePaymentModelDao> getInvoicePaymentsByCookieId(final String cookieId, final InternalTenantContext internalTenantContext) {
+    public InvoicePaymentModelDao getInvoicePaymentByCookieId(final String cookieId, final InternalTenantContext internalTenantContext) {
         throw new UnsupportedOperationException();
     }
 
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java b/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java
index 5a9d924..c836e97 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/DefaultInvoicePaymentApi.java
@@ -111,7 +111,7 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
                                                   InvoicePaymentPaymentOptions.create(paymentOptions),
                                                   context);
 
-        return getInvoicePayment(paymentTransactionExternalKey, context);
+        return invoiceInternalApi.getInvoicePaymentByCookieId(paymentTransactionExternalKey, context);
     }
 
     @Override
@@ -146,7 +146,7 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
                                                   InvoicePaymentPaymentOptions.create(paymentOptions),
                                                   context);
 
-        return getInvoicePayment(paymentTransactionExternalKey, context);
+        return invoiceInternalApi.getInvoicePaymentByCookieId(paymentTransactionExternalKey, context);
     }
 
     @Override
@@ -174,9 +174,4 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
         }
         return pluginProperties;
     }
-
-    private InvoicePayment getInvoicePayment(final String paymentTransactionExternalKey, final TenantContext context) {
-        final List<InvoicePayment> invoicePayments = invoiceInternalApi.getInvoicePaymentsByCookieId(paymentTransactionExternalKey, context);
-        return invoicePayments.isEmpty() ? null : invoicePayments.get(invoicePayments.size() - 1);
-    }
 }
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java b/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java
index 38710ca..9f99f7b 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/svcs/DefaultInvoicePaymentInternalApi.java
@@ -42,7 +42,6 @@ import org.killbill.billing.payment.core.PluginControlPaymentProcessor;
 import org.killbill.billing.util.UUIDs;
 import org.killbill.billing.util.callcontext.CallContext;
 import org.killbill.billing.util.callcontext.InternalCallContextFactory;
-import org.killbill.billing.util.callcontext.TenantContext;
 import org.killbill.billing.util.config.definition.PaymentConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -146,11 +145,6 @@ public class DefaultInvoicePaymentInternalApi extends DefaultApiBase implements 
                            exception);
         }
 
-        return paymentTransaction != null ? getInvoicePayment(paymentTransaction.getExternalKey(), callContext) : null;
-    }
-
-    private InvoicePayment getInvoicePayment(final String paymentTransactionExternalKey, final TenantContext context) {
-        final List<InvoicePayment> invoicePayments = invoiceInternalApi.getInvoicePaymentsByCookieId(paymentTransactionExternalKey, context);
-        return invoicePayments.isEmpty() ? null : invoicePayments.get(invoicePayments.size() - 1);
+        return paymentTransaction != null ? invoiceInternalApi.getInvoicePaymentByCookieId(paymentTransactionExternalKey, callContext) : null;
     }
 }