killbill-memoizeit

analytics: add getAccountByKey in AnalyticsDao Signed-off-by:

6/22/2012 6:19:20 PM

Details

diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/AnalyticsDao.java b/analytics/src/main/java/com/ning/billing/analytics/dao/AnalyticsDao.java
index fb038a6..66a8a26 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/AnalyticsDao.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/AnalyticsDao.java
@@ -16,9 +16,12 @@
 
 package com.ning.billing.analytics.dao;
 
+import com.ning.billing.analytics.model.BusinessAccount;
 import com.ning.billing.analytics.model.BusinessInvoice;
 import com.ning.billing.analytics.model.BusinessInvoiceItem;
 
 public interface AnalyticsDao {
+    BusinessAccount getAccountByKey(final String accountKey);
+
     void createInvoice(final String accountKey, final BusinessInvoice invoice, final Iterable<BusinessInvoiceItem> invoiceItems);
 }
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/DefaultAnalyticsDao.java b/analytics/src/main/java/com/ning/billing/analytics/dao/DefaultAnalyticsDao.java
index db18c9f..87da400 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/DefaultAnalyticsDao.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/DefaultAnalyticsDao.java
@@ -28,14 +28,21 @@ import com.ning.billing.analytics.model.BusinessInvoice;
 import com.ning.billing.analytics.model.BusinessInvoiceItem;
 
 public class DefaultAnalyticsDao implements AnalyticsDao {
+    private final BusinessAccountSqlDao accountSqlDao;
     private final BusinessInvoiceSqlDao invoiceSqlDao;
 
     @Inject
-    public DefaultAnalyticsDao(final BusinessInvoiceSqlDao invoiceSqlDao) {
+    public DefaultAnalyticsDao(final BusinessAccountSqlDao accountSqlDao, final BusinessInvoiceSqlDao invoiceSqlDao) {
+        this.accountSqlDao = accountSqlDao;
         this.invoiceSqlDao = invoiceSqlDao;
     }
 
     @Override
+    public BusinessAccount getAccountByKey(final String accountKey) {
+        return accountSqlDao.getAccount(accountKey);
+    }
+
+    @Override
     public void createInvoice(final String accountKey, final BusinessInvoice invoice, final Iterable<BusinessInvoiceItem> invoiceItems) {
         invoiceSqlDao.inTransaction(new Transaction<Void, BusinessInvoiceSqlDao>() {
             @Override
diff --git a/analytics/src/test/java/com/ning/billing/analytics/dao/TestDefaultAnalyticsDao.java b/analytics/src/test/java/com/ning/billing/analytics/dao/TestDefaultAnalyticsDao.java
index faa022c..20b3517 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/dao/TestDefaultAnalyticsDao.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/dao/TestDefaultAnalyticsDao.java
@@ -46,7 +46,7 @@ public class TestDefaultAnalyticsDao extends TestWithEmbeddedDB {
         accountSqlDao = dbi.onDemand(BusinessAccountSqlDao.class);
         invoiceSqlDao = dbi.onDemand(BusinessInvoiceSqlDao.class);
         invoiceItemSqlDao = dbi.onDemand(BusinessInvoiceItemSqlDao.class);
-        analyticsDao = new DefaultAnalyticsDao(invoiceSqlDao);
+        analyticsDao = new DefaultAnalyticsDao(accountSqlDao, invoiceSqlDao);
     }
 
     @Test(groups = "slow")