killbill-memoizeit
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultChargeThruApi.java 61(+0 -61)
entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultEntitlementInternalApi.java 110(+110 -0)
Details
diff --git a/account/src/main/java/com/ning/billing/account/api/svcs/DefaultAccountInternalApi.java b/account/src/main/java/com/ning/billing/account/api/svcs/DefaultAccountInternalApi.java
index 69620d7..2b5a0e2 100644
--- a/account/src/main/java/com/ning/billing/account/api/svcs/DefaultAccountInternalApi.java
+++ b/account/src/main/java/com/ning/billing/account/api/svcs/DefaultAccountInternalApi.java
@@ -27,17 +27,21 @@ import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.account.api.AccountData;
import com.ning.billing.account.api.AccountEmail;
import com.ning.billing.account.dao.AccountDao;
+import com.ning.billing.account.dao.AccountEmailDao;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.entity.EntityPersistenceException;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
public class DefaultAccountInternalApi implements AccountInternalApi {
private final AccountDao accountDao;
+ private final AccountEmailDao accountEmailDao;
@Inject
- public DefaultAccountInternalApi(final AccountDao accountDao) {
+ public DefaultAccountInternalApi(final AccountDao accountDao, final AccountEmailDao accountEmailDao) {
this.accountDao = accountDao;
+ this.accountEmailDao = accountEmailDao;
}
@Override
@@ -51,37 +55,45 @@ public class DefaultAccountInternalApi implements AccountInternalApi {
}
@Override
- public void updateAccount(String key, AccountData accountData,
+ public void updateAccount(String externalKey, AccountData accountData,
InternalCallContext context) throws AccountApiException {
- // TODO Auto-generated method stub
-
+ final Account account = getAccountByKey(externalKey, context);
+ try {
+ accountDao.update(account,context);
+ } catch (EntityPersistenceException e) {
+ throw new AccountApiException(e, ErrorCode.ACCOUNT_UPDATE_FAILED);
+ }
}
@Override
public List<AccountEmail> getEmails(UUID accountId,
InternalTenantContext context) {
- // TODO Auto-generated method stub
- return null;
+ return accountEmailDao.getEmails(accountId, context);
}
@Override
public Account getAccountByKey(String key, InternalTenantContext context)
throws AccountApiException {
- // TODO Auto-generated method stub
- return null;
+ final Account account = accountDao.getAccountByKey(key, context);
+ if (account == null) {
+ throw new AccountApiException(ErrorCode.ACCOUNT_DOES_NOT_EXIST_FOR_KEY, key);
+ }
+ return account;
}
@Override
public void removePaymentMethod(UUID accountId, InternalCallContext context)
throws AccountApiException {
- // TODO Auto-generated method stub
-
+ updatePaymentMethod(accountId, null, context);
}
@Override
public void updatePaymentMethod(UUID accountId, UUID paymentMethodId,
InternalCallContext context) throws AccountApiException {
- // TODO Auto-generated method stub
-
+ try {
+ accountDao.updatePaymentMethod(accountId, paymentMethodId, context);
+ } catch (EntityPersistenceException e) {
+ throw new AccountApiException(e, e.getCode(), e.getMessage());
+ }
}
}
diff --git a/account/src/main/java/com/ning/billing/account/glue/AccountModule.java b/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
index e6458d0..5ea5a09 100644
--- a/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
+++ b/account/src/main/java/com/ning/billing/account/glue/AccountModule.java
@@ -19,12 +19,14 @@ package com.ning.billing.account.glue;
import com.ning.billing.account.api.AccountService;
import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.account.api.DefaultAccountService;
+import com.ning.billing.account.api.svcs.DefaultAccountInternalApi;
import com.ning.billing.account.api.user.DefaultAccountUserApi;
import com.ning.billing.account.dao.AccountDao;
import com.ning.billing.account.dao.AccountEmailDao;
import com.ning.billing.account.dao.AuditedAccountDao;
import com.ning.billing.account.dao.AuditedAccountEmailDao;
import com.ning.billing.util.glue.RealImplementation;
+import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.google.inject.AbstractModule;
@@ -39,6 +41,7 @@ public class AccountModule extends AbstractModule {
protected void installAccountUserApi() {
bind(AccountUserApi.class).annotatedWith(RealImplementation.class).to(DefaultAccountUserApi.class).asEagerSingleton();
+ bind(AccountInternalApi.class).annotatedWith(RealImplementation.class).to(DefaultAccountInternalApi.class).asEagerSingleton();
}
private void installAccountService() {
diff --git a/api/src/main/java/com/ning/billing/glue/EntitlementModule.java b/api/src/main/java/com/ning/billing/glue/EntitlementModule.java
index 88d467c..5bffb92 100644
--- a/api/src/main/java/com/ning/billing/glue/EntitlementModule.java
+++ b/api/src/main/java/com/ning/billing/glue/EntitlementModule.java
@@ -26,7 +26,7 @@ public interface EntitlementModule {
public abstract void installEntitlementMigrationApi();
- public abstract void installChargeThruApi();
+ public abstract void installEntitlementInternalApi();
public abstract void installEntitlementTimelineApi();
diff --git a/api/src/main/java/com/ning/billing/glue/InvoiceModule.java b/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
index f513edd..31a6da9 100644
--- a/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
+++ b/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
@@ -17,9 +17,12 @@
package com.ning.billing.glue;
public interface InvoiceModule {
+
public abstract void installInvoiceUserApi();
public abstract void installInvoicePaymentApi();
public abstract void installInvoiceMigrationApi();
+
+ public abstract void installInvoiceInternalApi();
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultEntitlementInternalApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultEntitlementInternalApi.java
new file mode 100644
index 0000000..2c38025
--- /dev/null
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultEntitlementInternalApi.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package com.ning.billing.entitlement.api.svcs;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
+import org.joda.time.LocalTime;
+
+import com.ning.billing.ErrorCode;
+import com.ning.billing.entitlement.api.SubscriptionFactory;
+import com.ning.billing.entitlement.api.user.DefaultSubscriptionFactory.SubscriptionBuilder;
+import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
+import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.entitlement.api.user.SubscriptionData;
+import com.ning.billing.entitlement.engine.dao.EntitlementDao;
+import com.ning.billing.util.callcontext.InternalCallContext;
+import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
+
+import com.google.inject.Inject;
+
+public class DefaultEntitlementInternalApi implements EntitlementInternalApi {
+
+ private final EntitlementDao dao;
+ private final SubscriptionFactory subscriptionFactory;
+ @Inject
+ public DefaultEntitlementInternalApi(final EntitlementDao dao,
+ final SubscriptionFactory subscriptionFactory) {
+ this.dao = dao;
+ this.subscriptionFactory = subscriptionFactory;
+ }
+
+ @Override
+ public List<SubscriptionBundle> getBundlesForAccount(UUID accountId,
+ InternalTenantContext context) {
+ return dao.getSubscriptionBundleForAccount(accountId, context);
+ }
+
+ @Override
+ public List<Subscription> getSubscriptionsForBundle(UUID bundleId,
+ InternalTenantContext context) {
+ return dao.getSubscriptions(subscriptionFactory, bundleId, context);
+ }
+
+ @Override
+ public Subscription getBaseSubscription(UUID bundleId,
+ InternalTenantContext context) throws EntitlementUserApiException {
+ final Subscription result = dao.getBaseSubscription(subscriptionFactory, bundleId, context);
+ if (result == null) {
+ throw new EntitlementUserApiException(ErrorCode.ENT_GET_NO_SUCH_BASE_SUBSCRIPTION, bundleId);
+ }
+ return result;
+ }
+
+ @Override
+ public Subscription getSubscriptionFromId(UUID id,
+ InternalTenantContext context) throws EntitlementUserApiException {
+ final Subscription result = dao.getSubscriptionFromId(subscriptionFactory, id, context);
+ if (result == null) {
+ throw new EntitlementUserApiException(ErrorCode.ENT_INVALID_SUBSCRIPTION_ID, id);
+ }
+ return result;
+ }
+
+ @Override
+ public SubscriptionBundle getBundleFromId(UUID id,
+ InternalTenantContext context) throws EntitlementUserApiException {
+ final SubscriptionBundle result = dao.getSubscriptionBundleFromId(id, context);
+ if (result == null) {
+ throw new EntitlementUserApiException(ErrorCode.ENT_GET_INVALID_BUNDLE_ID, id.toString());
+ }
+ return result;
+ }
+
+ @Override
+ public UUID getAccountIdFromSubscriptionId(UUID subscriptionId,
+ InternalTenantContext context)
+ throws EntitlementUserApiException {
+ return dao.getAccountIdFromSubscriptionId(subscriptionId, context);
+ }
+
+ @Override
+ public void setChargedThroughDate(UUID subscriptionId,
+ LocalDate localChargedThruDate, InternalCallContext context) {
+ final SubscriptionData subscription = (SubscriptionData) dao.getSubscriptionFromId(subscriptionFactory, subscriptionId, context);
+ final DateTime chargedThroughDate = localChargedThruDate.toDateTime(new LocalTime(subscription.getStartDate(), DateTimeZone.UTC), DateTimeZone.UTC);
+ final SubscriptionBuilder builder = new SubscriptionBuilder(subscription)
+ .setChargedThroughDate(chargedThroughDate)
+ .setPaidThroughDate(subscription.getPaidThroughDate());
+ dao.updateChargedThroughDate(new SubscriptionData(builder), context);
+ }
+}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java b/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java
index b5974b8..497855e 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/glue/DefaultEntitlementModule.java
@@ -24,9 +24,9 @@ import com.ning.billing.entitlement.alignment.PlanAligner;
import com.ning.billing.entitlement.api.EntitlementService;
import com.ning.billing.entitlement.api.SubscriptionApiService;
import com.ning.billing.entitlement.api.SubscriptionFactory;
-import com.ning.billing.entitlement.api.billing.DefaultChargeThruApi;
import com.ning.billing.entitlement.api.migration.DefaultEntitlementMigrationApi;
import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi;
+import com.ning.billing.entitlement.api.svcs.DefaultEntitlementInternalApi;
import com.ning.billing.entitlement.api.timeline.DefaultEntitlementTimelineApi;
import com.ning.billing.entitlement.api.timeline.EntitlementTimelineApi;
import com.ning.billing.entitlement.api.timeline.RepairEntitlementLifecycleDao;
@@ -45,7 +45,7 @@ import com.ning.billing.entitlement.engine.dao.EntitlementDao;
import com.ning.billing.entitlement.engine.dao.RepairEntitlementDao;
import com.ning.billing.glue.EntitlementModule;
import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.entitlement.ChargeThruInternalApi;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
@@ -82,7 +82,7 @@ public class DefaultEntitlementModule extends AbstractModule implements Entitlem
installEntitlementService();
installEntitlementTimelineApi();
installEntitlementMigrationApi();
- installChargeThruApi();
+ installEntitlementInternalApi();
installEntitlementUserApi();
installEntitlementTransferApi();
}
@@ -112,8 +112,8 @@ public class DefaultEntitlementModule extends AbstractModule implements Entitlem
@Override
- public void installChargeThruApi() {
- bind(ChargeThruInternalApi.class).to(DefaultChargeThruApi.class).asEagerSingleton();
+ public void installEntitlementInternalApi() {
+ bind(EntitlementInternalApi.class).to(DefaultEntitlementInternalApi.class).asEagerSingleton();
}
@Override
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
index 30e9e59..40cf2f4 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
@@ -16,6 +16,11 @@
package com.ning.billing.entitlement.api;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
@@ -80,23 +85,18 @@ import com.ning.billing.util.bus.DefaultBusService;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.entitlement.ChargeThruInternalApi;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.google.inject.Injector;
import com.google.inject.Key;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
public abstract class TestApiBase extends EntitlementTestSuiteWithEmbeddedDB implements TestListenerStatus {
protected static final Logger log = LoggerFactory.getLogger(TestApiBase.class);
protected EntitlementService entitlementService;
protected EntitlementUserApi entitlementApi;
- protected ChargeThruInternalApi billingApi;
+ protected EntitlementInternalApi entitlementInternalApi;
protected EntitlementTransferApi transferApi;
protected EntitlementMigrationApi migrationApi;
@@ -163,7 +163,7 @@ public abstract class TestApiBase extends EntitlementTestSuiteWithEmbeddedDB imp
entitlementService = g.getInstance(EntitlementService.class);
entitlementApi = g.getInstance(Key.get(EntitlementUserApi.class, RealImplementation.class));
- billingApi = g.getInstance(ChargeThruInternalApi.class);
+ entitlementInternalApi = g.getInstance(EntitlementInternalApi.class);
migrationApi = g.getInstance(EntitlementMigrationApi.class);
repairApi = g.getInstance(EntitlementTimelineApi.class);
transferApi = g.getInstance(EntitlementTransferApi.class);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java
index 643ef43..db3df23 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java
@@ -585,7 +585,7 @@ public class TestRepairBP extends TestApiBaseRepair {
// SET CTD to BASE SUBSCRIPTION SP CANCEL OCCURS EOT
final DateTime newChargedThroughDate = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
- billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
baseSubscription = entitlementApi.getSubscriptionFromId(baseSubscription.getId(), callContext);
final DateTime requestedChange = clock.getUTCNow();
@@ -698,7 +698,7 @@ public class TestRepairBP extends TestApiBaseRepair {
// Move clock at least a sec to make sure the last_sys_update from bundle is different-- and therefore generates a different viewId
clock.setDeltaFromReality(1000);
- billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
entitlementApi.getSubscriptionFromId(baseSubscription.getId(), callContext);
repairApi.repairBundle(bRepair, true, callContext);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairWithAO.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairWithAO.java
index b3f1e96..8aedd2f 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairWithAO.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairWithAO.java
@@ -349,7 +349,7 @@ public class TestRepairWithAO extends TestApiBaseRepair {
// SET CTD to BASE SUBSCRIPTION SP CANCEL OCCURS EOT
final DateTime newChargedThroughDate = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
- billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
baseSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(baseSubscription.getId(), callContext);
BundleTimeline bundleRepair = repairApi.getBundleTimeline(bundle.getId(), callContext);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/transfer/TestTransfer.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/transfer/TestTransfer.java
index 9827448..60c5802 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/transfer/TestTransfer.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/transfer/TestTransfer.java
@@ -184,7 +184,7 @@ public class TestTransfer extends TestApiBase {
final Subscription baseSubscription = createSubscription(baseProduct, baseTerm, basePriceList);
final DateTime ctd = baseSubscription.getStartDate().plusDays(30);
- billingApi.setChargedThroughDate(baseSubscription.getId(), ctd.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), ctd.toLocalDate(), internalCallContext);
final DateTime evergreenPhaseDate = baseSubscription.getPendingTransition().getEffectiveTransitionTime();
@@ -287,7 +287,7 @@ public class TestTransfer extends TestApiBase {
// SET CTD
final DateTime ctd = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
- billingApi.setChargedThroughDate(baseSubscription.getId(), ctd.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), ctd.toLocalDate(), internalCallContext);
final DateTime transferRequestedDate = clock.getUTCNow();
@@ -332,7 +332,7 @@ public class TestTransfer extends TestApiBase {
clock.addDays(2);
final DateTime newCtd = newBaseSubscription.getStartDate().plusYears(1);
- billingApi.setChargedThroughDate(newBaseSubscription.getId(), newCtd.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(newBaseSubscription.getId(), newCtd.toLocalDate(), internalCallContext);
final Subscription newBaseSubscriptionWithCtd = entitlementApi.getSubscriptionFromId(newBaseSubscription.getId(), callContext);
final String newBaseProduct2 = "Pistol";
@@ -383,7 +383,7 @@ public class TestTransfer extends TestApiBase {
// SET CTD TO TRIGGER CANCELLATION EOT
final DateTime ctd = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
- billingApi.setChargedThroughDate(baseSubscription.getId(), ctd.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), ctd.toLocalDate(), internalCallContext);
final DateTime transferRequestedDate = clock.getUTCNow();
testListener.pushExpectedEvent(NextEvent.TRANSFER);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java
index 22c1442..a906cb9 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java
@@ -116,7 +116,7 @@ public class TestUserApiAddOn extends TestApiBase {
final Duration ctd = getDurationMonth(1);
// Why not just use clock.getUTCNow().plusMonths(1) ?
final DateTime newChargedThroughDate = DefaultClock.addDuration(now, ctd);
- billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
baseSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(baseSubscription.getId(), callContext);
// FUTURE CANCELLATION
@@ -176,7 +176,7 @@ public class TestUserApiAddOn extends TestApiBase {
final DateTime now = clock.getUTCNow();
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(now, ctd);
- billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
baseSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(baseSubscription.getId(), callContext);
// CHANGE IMMEDIATELY WITH TO BP WITH NON INCLUDED ADDON
@@ -239,7 +239,7 @@ public class TestUserApiAddOn extends TestApiBase {
final DateTime now = clock.getUTCNow();
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(now, ctd);
- billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
baseSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(baseSubscription.getId(), callContext);
// CHANGE IMMEDIATELY WITH TO BP WITH NON AVAILABLE ADDON
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java
index 47db7b8..d6e2060 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java
@@ -110,7 +110,7 @@ public abstract class TestUserApiCancel extends TestApiBase {
// SET CTD + RE READ SUBSCRIPTION + CHANGE PLAN
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(expectedPhaseTrialChange, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
assertEquals(subscription.getLastActiveProductName(), prod);
@@ -228,7 +228,7 @@ public abstract class TestUserApiCancel extends TestApiBase {
// SET CTD + RE READ SUBSCRIPTION + CHANGE PLAN
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(expectedPhaseTrialChange, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
// CANCEL EOT
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java
index e2d68de..55ed4ff 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java
@@ -118,7 +118,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// SET CTD
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(expectedPhaseTrialChange, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
// RE READ SUBSCRIPTION + CHANGE PLAN
testListener.setNonExpectedMode();
@@ -221,7 +221,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// SET CTD
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(expectedPhaseTrialChange, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
// RE READ SUBSCRIPTION + CHECK CURRENT PHASE
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
@@ -302,7 +302,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
final DateTime startDiscountPhase = DefaultClock.addDuration(subscription.getStartDate(), durationList);
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(startDiscountPhase, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
// CHANGE EOT
@@ -350,7 +350,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
final DateTime startDiscountPhase = DefaultClock.addDuration(subscription.getStartDate(), durationList);
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(startDiscountPhase, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
// CHANGE EOT
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java
index 30138d4..9bd76e1 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java
@@ -101,7 +101,7 @@ public class TestUserApiDemos extends TestApiBase {
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(startDiscountPhase, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
testListener.setNonExpectedMode();
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java
index cf14f79..df1af0b 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java
@@ -202,7 +202,7 @@ public class TestUserApiError extends TestApiBase {
final DateTime expectedPhaseTrialChange = DefaultClock.addDuration(subscription.getStartDate(), trialPhase.getDuration());
final Duration ctd = getDurationMonth(1);
final DateTime newChargedThroughDate = DefaultClock.addDuration(expectedPhaseTrialChange, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = entitlementApi.getSubscriptionFromId(subscription.getId(), tenantContext);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java
index 0306326..9ba5c2b 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java
@@ -66,7 +66,7 @@ public class TestUserApiScenarios extends TestApiBase {
final Duration ctd = getDurationMonth(1);
final DateTime expectedPhaseTrialChange = DefaultClock.addDuration(subscription.getStartDate(), trialPhase.getDuration());
final DateTime newChargedThroughDate = DefaultClock.addDuration(expectedPhaseTrialChange, ctd);
- billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
+ entitlementInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate.toLocalDate(), internalCallContext);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId(), callContext);
// CANCEL EOT
diff --git a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
index a6d35f8..97498b4 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
@@ -31,6 +31,7 @@ import com.ning.billing.invoice.api.InvoiceUserApi;
import com.ning.billing.invoice.api.formatters.InvoiceFormatterFactory;
import com.ning.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
import com.ning.billing.invoice.api.migration.DefaultInvoiceMigrationApi;
+import com.ning.billing.invoice.api.svcs.DefaultInvoiceInternalApi;
import com.ning.billing.invoice.api.user.DefaultInvoiceUserApi;
import com.ning.billing.invoice.dao.AuditedInvoiceDao;
import com.ning.billing.invoice.dao.InvoiceDao;
@@ -42,6 +43,7 @@ import com.ning.billing.invoice.notification.EmailInvoiceNotifier;
import com.ning.billing.invoice.notification.NextBillingDateNotifier;
import com.ning.billing.invoice.notification.NextBillingDatePoster;
import com.ning.billing.invoice.notification.NullInvoiceNotifier;
+import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
import com.ning.billing.util.template.translation.TranslatorConfig;
import com.google.inject.AbstractModule;
@@ -60,6 +62,11 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
}
@Override
+ public void installInvoiceInternalApi() {
+ bind(InvoiceInternalApi.class).to(DefaultInvoiceInternalApi.class).asEagerSingleton();
+ }
+
+ @Override
public void installInvoicePaymentApi() {
bind(InvoicePaymentApi.class).to(DefaultInvoicePaymentApi.class).asEagerSingleton();
}
@@ -119,6 +126,7 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
installInvoiceGenerator();
installInvoiceDao();
installInvoiceUserApi();
+ installInvoiceInternalApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java b/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
index 269bdcb..ba0d380 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
@@ -35,6 +35,7 @@ import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.account.api.BillCycleDay;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.entitlement.api.user.EffectiveSubscriptionEvent;
+import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceCreationEvent;
@@ -59,7 +60,7 @@ import com.ning.billing.util.globallocker.GlobalLocker;
import com.ning.billing.util.globallocker.GlobalLocker.LockerType;
import com.ning.billing.util.globallocker.LockFailedException;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.entitlement.EntitlementBillingApiException;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.ning.billing.util.svcapi.junction.BillingEventSet;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
@@ -75,6 +76,7 @@ public class InvoiceDispatcher {
private final InvoiceGenerator generator;
private final BillingInternalApi billingApi;
private final AccountInternalApi accountApi;
+ private final EntitlementInternalApi entitlementApi;
private final InvoiceDao invoiceDao;
private final InvoiceNotifier invoiceNotifier;
private final GlobalLocker locker;
@@ -85,6 +87,7 @@ public class InvoiceDispatcher {
@Inject
public InvoiceDispatcher(final InvoiceGenerator generator, final AccountInternalApi accountApi,
final BillingInternalApi billingApi,
+ final EntitlementInternalApi entitlementApi,
final InvoiceDao invoiceDao,
final InvoiceNotifier invoiceNotifier,
final GlobalLocker locker,
@@ -93,6 +96,7 @@ public class InvoiceDispatcher {
final InternalCallContextFactory internalCallContextFactory) {
this.generator = generator;
this.billingApi = billingApi;
+ this.entitlementApi = entitlementApi;
this.accountApi = accountApi;
this.invoiceDao = invoiceDao;
this.invoiceNotifier = invoiceNotifier;
@@ -116,9 +120,9 @@ public class InvoiceDispatcher {
log.error("Failed handling entitlement change.", new InvoiceApiException(ErrorCode.INVOICE_INVALID_TRANSITION));
return;
}
- final UUID accountId = billingApi.getAccountIdFromSubscriptionId(subscriptionId, internalCallContextFactory.createInternalTenantContext(context));
+ final UUID accountId = entitlementApi.getAccountIdFromSubscriptionId(subscriptionId, internalCallContextFactory.createInternalTenantContext(context));
processAccount(accountId, targetDate, false, context);
- } catch (EntitlementBillingApiException e) {
+ } catch (EntitlementUserApiException e) {
log.error("Failed handling entitlement change.",
new InvoiceApiException(ErrorCode.INVOICE_NO_ACCOUNT_ID_FOR_SUBSCRIPTION_ID, subscriptionId.toString()));
}
@@ -225,7 +229,7 @@ public class InvoiceDispatcher {
if (subscriptionId != null) {
final LocalDate chargeThroughDate = chargeThroughDates.get(subscriptionId);
log.info("Setting CTD for subscription {} to {}", subscriptionId.toString(), chargeThroughDate.toString());
- billingApi.setChargedThroughDate(subscriptionId, chargeThroughDate, internalCallContextFactory.createInternalCallContext(context));
+ entitlementApi.setChargedThroughDate(subscriptionId, chargeThroughDate, internalCallContextFactory.createInternalCallContext(context));
}
}
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/migration/InvoiceApiTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/api/migration/InvoiceApiTestBase.java
index 76db6d5..908fb45 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/migration/InvoiceApiTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/migration/InvoiceApiTestBase.java
@@ -134,7 +134,7 @@ public abstract class InvoiceApiTestBase extends InvoicingTestBase {
Mockito.when(billingApi.getBillingEventsForAccountAndUpdateAccountBCD(account.getId(), internalCallContext)).thenReturn(events);
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
- final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountApi, billingApi,
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountApi, billingApi, null,
invoiceDao, invoiceNotifier, locker, busService.getBus(),
clock, internalCallContextFactory);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
index f294a6e..76aa307 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
@@ -154,7 +154,7 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
final DateTime target = new DateTime();
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
- final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, invoiceDao,
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, null, invoiceDao,
invoiceNotifier, locker, busService.getBus(),
clock, new InternalCallContextFactory(getMysqlTestingHelper().getDBI(), clock));
@@ -208,7 +208,7 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
Mockito.when(billingApi.getBillingEventsForAccountAndUpdateAccountBCD(account.getId(), internalCallContext)).thenReturn(events);
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
- final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, invoiceDao,
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, null, invoiceDao,
invoiceNotifier, locker, busService.getBus(),
clock, internalCallContextFactory);
diff --git a/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java b/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
index 37cfb7a..be2e01b 100644
--- a/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
+++ b/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
@@ -29,7 +29,7 @@ import com.ning.billing.junction.dao.BlockingStateSqlDao;
import com.ning.billing.junction.plumbing.api.BlockingAccountUserApi;
import com.ning.billing.junction.plumbing.api.BlockingEntitlementUserApi;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
-import com.ning.billing.junction.plumbing.billing.DefaultBillingApi;
+import com.ning.billing.junction.plumbing.billing.DefaultInternalBillingApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingApi;
@@ -59,7 +59,7 @@ public class DefaultJunctionModule extends AbstractModule implements JunctionMod
}
public void installBillingApi() {
- bind(BillingInternalApi.class).to(DefaultBillingApi.class).asEagerSingleton();
+ bind(BillingInternalApi.class).to(DefaultInternalBillingApi.class).asEagerSingleton();
}
public void installBlockingStateDao() {
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
index dbcdb33..9ed69d5 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
@@ -72,9 +72,9 @@ import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.dao.ObjectType;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BillingEvent;
import com.ning.billing.util.svcapi.junction.BillingEventSet;
+import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BillingModeType;
import com.ning.billing.util.svcapi.junction.BlockingApi;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
@@ -146,9 +146,7 @@ public class TestBillingApi extends JunctionTestSuite {
bcdCalculator = new BillCycleDayCalculator(catalogService, entitlementApi);
- // API_FIX null
- factory = new InternalCallContextFactory(null, clock);
- api = new DefaultBillingApi(null, factory, accountApi, bcdCalculator, entitlementApi, blockCalculator, catalogService, tagApi);
+ api = new DefaultInternalBillingApi(accountApi, bcdCalculator, entitlementApi, blockCalculator, catalogService, tagApi);
// Set a default alignment
((MockCatalog) catalogService.getFullCatalog()).setBillingAlignment(BillingAlignment.ACCOUNT);
@@ -258,7 +256,7 @@ public class TestBillingApi extends JunctionTestSuite {
}
});
- final BillingInternalApi api = new DefaultBillingApi(null, factory, accountApi, bcdCalculator, entitlementApi, blockingCal, catalogService, tagApi);
+ final BillingInternalApi api = new DefaultInternalBillingApi(accountApi, bcdCalculator, entitlementApi, blockingCal, catalogService, tagApi);
final SortedSet<BillingEvent> events = api.getBillingEventsForAccountAndUpdateAccountBCD(account.getId(), internalCallContext);
Assert.assertEquals(events.size(), 3);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
index 0570024..ccc589c 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
@@ -16,6 +16,9 @@
package com.ning.billing.overdue.notification;
+import static com.jayway.awaitility.Awaitility.await;
+import static java.util.concurrent.TimeUnit.MINUTES;
+
import java.io.IOException;
import java.sql.SQLException;
import java.util.UUID;
@@ -68,7 +71,6 @@ import com.ning.billing.util.globallocker.MySqlGlobalLocker;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.notificationq.DefaultNotificationQueueService;
import com.ning.billing.util.notificationq.NotificationQueueService;
-import com.ning.billing.util.svcapi.entitlement.ChargeThruInternalApi;
import com.ning.billing.util.tag.dao.AuditedTagDao;
import com.ning.billing.util.tag.dao.TagDao;
@@ -76,9 +78,6 @@ import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Stage;
-import static com.jayway.awaitility.Awaitility.await;
-import static java.util.concurrent.TimeUnit.MINUTES;
-
public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
private Clock clock;
private DefaultOverdueCheckNotifier notifier;
@@ -131,7 +130,6 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
bind(TagDao.class).to(AuditedTagDao.class).asEagerSingleton();
bind(CustomFieldDao.class).to(AuditedCustomFieldDao.class).asEagerSingleton();
bind(GlobalLocker.class).to(MySqlGlobalLocker.class).asEagerSingleton();
- bind(ChargeThruInternalApi.class).toInstance(Mockito.mock(ChargeThruInternalApi.class));
install(new MockJunctionModule());
install(new EmailModule());
install(new TemplateModule());
diff --git a/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java b/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java
index 9a7ca81..36ac902 100644
--- a/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java
+++ b/util/src/main/java/com/ning/billing/util/glue/TagStoreModule.java
@@ -17,7 +17,9 @@
package com.ning.billing.util.glue;
import com.ning.billing.util.api.TagUserApi;
+import com.ning.billing.util.svcapi.tag.TagInternalApi;
import com.ning.billing.util.tag.api.DefaultTagUserApi;
+import com.ning.billing.util.tag.api.svcs.DefaultTagInternalApi;
import com.ning.billing.util.tag.dao.AuditedTagDao;
import com.ning.billing.util.tag.dao.DefaultTagDefinitionDao;
import com.ning.billing.util.tag.dao.TagDao;
@@ -35,5 +37,6 @@ public class TagStoreModule extends AbstractModule {
protected void configure() {
installDaos();
bind(TagUserApi.class).to(DefaultTagUserApi.class).asEagerSingleton();
+ bind(TagInternalApi.class).to(DefaultTagInternalApi.class).asEagerSingleton();
}
}
diff --git a/util/src/main/java/com/ning/billing/util/svcapi/entitlement/EntitlementInternalApi.java b/util/src/main/java/com/ning/billing/util/svcapi/entitlement/EntitlementInternalApi.java
index 9675002..3e6d723 100644
--- a/util/src/main/java/com/ning/billing/util/svcapi/entitlement/EntitlementInternalApi.java
+++ b/util/src/main/java/com/ning/billing/util/svcapi/entitlement/EntitlementInternalApi.java
@@ -18,9 +18,12 @@ package com.ning.billing.util.svcapi.entitlement;
import java.util.List;
import java.util.UUID;
+import org.joda.time.LocalDate;
+
import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
+import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -36,4 +39,7 @@ public interface EntitlementInternalApi {
public SubscriptionBundle getBundleFromId(UUID id, InternalTenantContext context) throws EntitlementUserApiException;
+ public UUID getAccountIdFromSubscriptionId(UUID subscriptionId, InternalTenantContext context) throws EntitlementUserApiException;
+
+ public void setChargedThroughDate(UUID subscriptionId, LocalDate localChargedThruDate, InternalCallContext context);
}
diff --git a/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingInternalApi.java b/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingInternalApi.java
index 54a96a0..1b2e4c8 100644
--- a/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingInternalApi.java
+++ b/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingInternalApi.java
@@ -19,9 +19,8 @@ package com.ning.billing.util.svcapi.junction;
import java.util.UUID;
import com.ning.billing.util.callcontext.InternalCallContext;
-import com.ning.billing.util.svcapi.entitlement.ChargeThruInternalApi;
-public interface BillingInternalApi extends ChargeThruInternalApi {
+public interface BillingInternalApi {
/**
* @return an ordered list of billing event for the given accounts
diff --git a/util/src/main/java/com/ning/billing/util/tag/api/svcs/DefaultTagInternalApi.java b/util/src/main/java/com/ning/billing/util/tag/api/svcs/DefaultTagInternalApi.java
new file mode 100644
index 0000000..f2dd452
--- /dev/null
+++ b/util/src/main/java/com/ning/billing/util/tag/api/svcs/DefaultTagInternalApi.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package com.ning.billing.util.tag.api.svcs;
+
+import java.util.Map;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import com.ning.billing.util.api.TagApiException;
+import com.ning.billing.util.callcontext.InternalCallContext;
+import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.dao.ObjectType;
+import com.ning.billing.util.svcapi.tag.TagInternalApi;
+import com.ning.billing.util.tag.Tag;
+import com.ning.billing.util.tag.dao.TagDao;
+
+public class DefaultTagInternalApi implements TagInternalApi {
+
+ private final TagDao tagDao;
+
+ @Inject
+ public DefaultTagInternalApi(final TagDao tagDao) {
+ this.tagDao = tagDao;
+ }
+
+ @Override
+ public Map<String, Tag> getTags(UUID objectId, ObjectType objectType,
+ InternalTenantContext context) {
+ return tagDao.loadEntities(objectId, objectType, context);
+ }
+
+ @Override
+ public void addTag(UUID objectId, ObjectType objectType,
+ UUID tagDefinitionId, InternalCallContext context)
+ throws TagApiException {
+ tagDao.insertTag(objectId, objectType, tagDefinitionId, context);
+
+ }
+
+ @Override
+ public void removeTag(UUID objectId, ObjectType objectType,
+ UUID tagDefinitionId, InternalCallContext context)
+ throws TagApiException {
+ tagDao.deleteTag(objectId, objectType, tagDefinitionId, context);
+ }
+}
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
index 18d2be2..c9c3527 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
@@ -25,7 +25,7 @@ import com.ning.billing.entitlement.api.transfer.EntitlementTransferApi;
import com.ning.billing.entitlement.api.user.EntitlementUserApi;
import com.ning.billing.glue.EntitlementModule;
import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.entitlement.ChargeThruInternalApi;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.google.inject.AbstractModule;
@@ -46,8 +46,8 @@ public class MockEntitlementModule extends AbstractModule implements Entitlement
}
@Override
- public void installChargeThruApi() {
- bind(ChargeThruInternalApi.class).toInstance(Mockito.mock(ChargeThruInternalApi.class));
+ public void installEntitlementInternalApi() {
+ bind(EntitlementInternalApi.class).toInstance(Mockito.mock(EntitlementInternalApi.class));
}
@Override
@@ -55,7 +55,7 @@ public class MockEntitlementModule extends AbstractModule implements Entitlement
installEntitlementService();
installEntitlementUserApi();
installEntitlementMigrationApi();
- installChargeThruApi();
+ installEntitlementInternalApi();
installEntitlementTimelineApi();
}
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
index a36eb02..8add945 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
@@ -22,6 +22,7 @@ import com.ning.billing.glue.InvoiceModule;
import com.ning.billing.invoice.api.InvoiceMigrationApi;
import com.ning.billing.invoice.api.InvoicePaymentApi;
import com.ning.billing.invoice.api.InvoiceUserApi;
+import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
import com.google.inject.AbstractModule;
@@ -47,4 +48,9 @@ public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
installInvoicePaymentApi();
installInvoiceMigrationApi();
}
+
+ @Override
+ public void installInvoiceInternalApi() {
+ bind(InvoiceInternalApi.class).toInstance(Mockito.mock(InvoiceInternalApi.class));
+ }
}