killbill-aplcache
account: remove the ability to create tags during account creation/migration We …
6/11/2012 4:35:53 PM
Changes
Details
diff --git a/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java b/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java
index c6cea33..d7d8049 100644
--- a/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java
+++ b/account/src/main/java/com/ning/billing/account/api/user/DefaultAccountUserApi.java
@@ -16,7 +16,6 @@
package com.ning.billing.account.api.user;
-import javax.annotation.Nullable;
import java.util.List;
import java.util.UUID;
@@ -35,46 +34,26 @@ import com.ning.billing.account.dao.AccountDao;
import com.ning.billing.account.dao.AccountEmailDao;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.CallContextFactory;
-import com.ning.billing.util.customfield.CustomField;
-import com.ning.billing.util.customfield.dao.CustomFieldDao;
-import com.ning.billing.util.dao.ObjectType;
import com.ning.billing.util.entity.EntityPersistenceException;
-import com.ning.billing.util.tag.TagDefinition;
-import com.ning.billing.util.tag.dao.TagDao;
public class DefaultAccountUserApi implements AccountUserApi {
private final CallContextFactory factory;
private final AccountDao accountDao;
private final AccountEmailDao accountEmailDao;
- private final TagDao tagDao;
- private final CustomFieldDao customFieldDao;
@Inject
- public DefaultAccountUserApi(final CallContextFactory factory, final AccountDao accountDao,
- final AccountEmailDao accountEmailDao, final TagDao tagDao,
- final CustomFieldDao customFieldDao) {
+ public DefaultAccountUserApi(final CallContextFactory factory, final AccountDao accountDao, final AccountEmailDao accountEmailDao) {
this.factory = factory;
this.accountDao = accountDao;
this.accountEmailDao = accountEmailDao;
- this.tagDao = tagDao;
- this.customFieldDao = customFieldDao;
}
@Override
- public Account createAccount(final AccountData data, @Nullable final List<CustomField> fields,
- @Nullable final List<TagDefinition> tagDefinitions, final CallContext context) throws AccountApiException {
+ public Account createAccount(final AccountData data, final CallContext context) throws AccountApiException {
final Account account = new DefaultAccount(data);
try {
- // TODO: move this into a transaction?
accountDao.create(account, context);
- if (tagDefinitions != null) {
- tagDao.insertTags(account.getId(), ObjectType.ACCOUNT, tagDefinitions, context);
- }
-
- if (fields != null) {
- customFieldDao.saveEntities(account.getId(), ObjectType.ACCOUNT, fields, context);
- }
} catch (EntityPersistenceException e) {
throw new AccountApiException(e, ErrorCode.ACCOUNT_CREATION_FAILED);
}
@@ -141,8 +120,7 @@ public class DefaultAccountUserApi implements AccountUserApi {
}
@Override
- public Account migrateAccount(final MigrationAccountData data, final List<CustomField> fields,
- final List<TagDefinition> tagDefinitions, final CallContext context)
+ public Account migrateAccount(final MigrationAccountData data, final CallContext context)
throws AccountApiException {
final DateTime createdDate = data.getCreatedDate() == null ? context.getCreatedDate() : data.getCreatedDate();
final DateTime updatedDate = data.getUpdatedDate() == null ? context.getUpdatedDate() : data.getUpdatedDate();
@@ -150,10 +128,7 @@ public class DefaultAccountUserApi implements AccountUserApi {
final Account account = new DefaultAccount(data);
try {
- // TODO: move this into a transaction?
accountDao.create(account, migrationContext);
- tagDao.insertTags(account.getId(), ObjectType.ACCOUNT, tagDefinitions, context);
- customFieldDao.saveEntities(account.getId(), ObjectType.ACCOUNT, fields, context);
} catch (EntityPersistenceException e) {
throw new AccountApiException(e, ErrorCode.ACCOUNT_CREATION_FAILED);
}
diff --git a/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java b/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
index 77504db..3cb427f 100644
--- a/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
+++ b/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
@@ -59,8 +59,7 @@ public class MockAccountUserApi implements AccountUserApi {
}
@Override
- public Account createAccount(final AccountData data, final List<CustomField> fields,
- final List<TagDefinition> tagDefinitions, final CallContext context) throws AccountApiException {
+ public Account createAccount(final AccountData data, final CallContext context) throws AccountApiException {
Account result = new DefaultAccount(data);
accounts.add(result);
return result;
@@ -117,8 +116,7 @@ public class MockAccountUserApi implements AccountUserApi {
}
@Override
- public Account migrateAccount(final MigrationAccountData data,
- final List<CustomField> fields, final List<TagDefinition> tagDefinitions, final CallContext context)
+ public Account migrateAccount(final MigrationAccountData data, final CallContext context)
throws AccountApiException {
Account result = new DefaultAccount(data);
accounts.add(result);
diff --git a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
index 73fffbd..e3e2f84 100644
--- a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
+++ b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
@@ -16,7 +16,6 @@
package com.ning.billing.account.api.user;
-import java.util.Map;
import java.util.UUID;
import org.joda.time.DateTimeZone;
@@ -25,7 +24,6 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import com.google.common.collect.ImmutableList;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountData;
import com.ning.billing.account.api.DefaultAccount;
@@ -36,14 +34,6 @@ import com.ning.billing.catalog.api.Currency;
import com.ning.billing.util.bus.Bus;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.CallContextFactory;
-import com.ning.billing.util.customfield.dao.CustomFieldDao;
-import com.ning.billing.util.customfield.dao.MockCustomFieldDao;
-import com.ning.billing.util.dao.ObjectType;
-import com.ning.billing.util.tag.DefaultTagDefinition;
-import com.ning.billing.util.tag.Tag;
-import com.ning.billing.util.tag.TagDefinition;
-import com.ning.billing.util.tag.dao.MockTagDao;
-import com.ning.billing.util.tag.dao.TagDao;
public class TestDefaultAccountUserApi {
private final CallContextFactory factory = Mockito.mock(CallContextFactory.class);
@@ -51,19 +41,16 @@ public class TestDefaultAccountUserApi {
private final AccountEmailDao accountEmailDao = Mockito.mock(AccountEmailDao.class);
private AccountDao accountDao;
- private TagDao tagDao;
private DefaultAccountUserApi accountUserApi;
@BeforeMethod(groups = "fast")
public void setUp() throws Exception {
accountDao = new MockAccountDao(Mockito.mock(Bus.class));
- tagDao = new MockTagDao();
- final CustomFieldDao customFieldDao = new MockCustomFieldDao();
- accountUserApi = new DefaultAccountUserApi(factory, accountDao, accountEmailDao, tagDao, customFieldDao);
+ accountUserApi = new DefaultAccountUserApi(factory, accountDao, accountEmailDao);
}
@Test(groups = "fast")
- public void testCreateWithTag() throws Exception {
+ public void testCreateAccount() throws Exception {
final UUID id = UUID.randomUUID();
final String externalKey = UUID.randomUUID().toString();
final String email = UUID.randomUUID().toString();
@@ -88,10 +75,7 @@ public class TestDefaultAccountUserApi {
paymentMethodId, timeZone, locale, address1, address2, companyName,
city, stateOrProvince, country, postalCode, phone, isMigrated, isNotifiedForInvoices);
- final String tagName = UUID.randomUUID().toString();
- final String tagDescription = UUID.randomUUID().toString();
- final TagDefinition tagDefinition = new DefaultTagDefinition(tagName, tagDescription, true);
- accountUserApi.createAccount(data, null, ImmutableList.<TagDefinition>of(tagDefinition), callContext);
+ accountUserApi.createAccount(data, callContext);
final Account account = accountDao.getAccountByKey(externalKey);
Assert.assertEquals(account.getExternalKey(), externalKey);
@@ -113,9 +97,5 @@ public class TestDefaultAccountUserApi {
Assert.assertEquals(account.getPhone(), phone);
Assert.assertEquals(account.isMigrated(), isMigrated);
Assert.assertEquals(account.isNotifiedForInvoices(), isNotifiedForInvoices);
-
- final Map<String, Tag> tags = tagDao.loadEntities(account.getId(), ObjectType.ACCOUNT);
- Assert.assertEquals(tags.keySet().size(), 1);
- Assert.assertEquals(tags.get(tagName).getTagDefinitionName(), tagName);
}
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
index 386d004..0094ca4 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
@@ -19,12 +19,9 @@ package com.ning.billing.analytics.api;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.UUID;
-
import org.joda.time.DateTime;
import org.mockito.Mockito;
import org.testng.Assert;
@@ -88,11 +85,6 @@ import com.ning.billing.util.callcontext.DefaultCallContextFactory;
import com.ning.billing.util.callcontext.UserType;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.DefaultClock;
-import com.ning.billing.util.tag.DefaultTagDefinition;
-import com.ning.billing.util.tag.TagDefinition;
-import com.ning.billing.util.tag.dao.AuditedTagDao;
-import com.ning.billing.util.tag.dao.TagDao;
-import com.ning.billing.util.tag.dao.TagDefinitionSqlDao;
import static org.testng.Assert.fail;
@@ -106,11 +98,7 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
private static final String KEY = "12345";
private static final String ACCOUNT_KEY = "pierre-12345";
private static final Currency ACCOUNT_CURRENCY = Currency.EUR;
- private static final DefaultTagDefinition TAG_ONE = new DefaultTagDefinition("batch20", "something", false);
- private static final DefaultTagDefinition TAG_TWO = new DefaultTagDefinition("awesome", "something", false);
private static final BigDecimal INVOICE_AMOUNT = BigDecimal.valueOf(1243.11);
- private static final String PAYMENT_METHOD = "Paypal";
- private static final String CARD_COUNTRY = "France";
private final Clock clock = new DefaultClock();
private final CallContext context = new DefaultCallContextFactory(clock).createCallContext("Analytics Test", CallOrigin.TEST, UserType.TEST);
@@ -122,9 +110,6 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
private EntitlementUserApi entitlementApi;
@Inject
- private TagDefinitionSqlDao tagDao;
-
- @Inject
private InvoiceDao invoiceDao;
@Inject
@@ -166,16 +151,9 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
@BeforeMethod(groups = "slow")
public void createMocks() {
- tagDao.create(TAG_ONE, context);
- tagDao.create(TAG_TWO, context);
-
final MockAccount account = new MockAccount(UUID.randomUUID(), ACCOUNT_KEY, ACCOUNT_CURRENCY);
try {
- final List<TagDefinition> tagDefinitions = new ArrayList<TagDefinition>();
- tagDefinitions.add(TAG_ONE);
- tagDefinitions.add(TAG_TWO);
-
- final Account storedAccount = accountApi.createAccount(account, null, tagDefinitions, context);
+ final Account storedAccount = accountApi.createAccount(account, context);
// Create events for the bus and expected results
createSubscriptionTransitionEvent(storedAccount);
@@ -248,10 +226,10 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
// It doesn't really matter what the events contain - the listener will go back to the db
invoiceCreationNotification = new DefaultInvoiceCreationEvent(invoice.getId(), account.getId(),
- INVOICE_AMOUNT, ACCOUNT_CURRENCY, clock.getUTCNow(), null);
+ INVOICE_AMOUNT, ACCOUNT_CURRENCY, clock.getUTCNow(), null);
paymentInfoNotification = new DefaultPaymentInfoEvent(account.getId(), invoices.get(0).getId(), null, invoices.get(0).getBalance(), -1, PaymentStatus.UNKNOWN, null, new DateTime());
-
+
//STEPH talk to Pierre
/*
paymentInfoNotification = new DefaultPaymentInfoEvent.Builder().setId(UUID.randomUUID()).setExternalPaymentId("12345abcdef").setPaymentMethod(PAYMENT_METHOD).setCardCountry(CARD_COUNTRY).build();
@@ -271,7 +249,7 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
// STEPH talk to Pierre -- see previous remark hence disable test
- @Test(groups = "slow", enabled=true)
+ @Test(groups = "slow", enabled = true)
public void testRegisterForNotifications() throws Exception {
// Make sure the service has been instantiated
Assert.assertEquals(service.getName(), "analytics-service");
@@ -293,12 +271,6 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
Assert.assertEquals(subscriptionDao.getTransitions(KEY).size(), 1);
Assert.assertEquals(subscriptionDao.getTransitions(KEY).get(0), expectedTransition);
-// Assert.assertEquals(accountDao.getAccount(ACCOUNT_KEY).getKey(), ACCOUNT_KEY);
-// Assert.assertEquals(accountDao.getAccount(ACCOUNT_KEY).getTags().size(), 2);
-// Assert.assertTrue(accountDao.getAccount(ACCOUNT_KEY).getTags().indexOf(TAG_ONE.getName()) != -1);
-// Assert.assertTrue(accountDao.getAccount(ACCOUNT_KEY).getTags().indexOf(TAG_TWO.getName()) != -1);
- TagDao tagDao = new AuditedTagDao(helper.getDBI());
-
// Test invoice integration - the account creation notification has triggered a BAC update
Assert.assertTrue(accountDao.getAccount(ACCOUNT_KEY).getTotalInvoiceBalance().compareTo(INVOICE_AMOUNT) == 0);
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
index d650fe2..a758681 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
@@ -43,8 +43,7 @@ public class MockAccountUserApi implements AccountUserApi {
}
@Override
- public Account createAccount(final AccountData data, final List<CustomField> fields,
- final List<TagDefinition> tagDefinitions, final CallContext context) {
+ public Account createAccount(final AccountData data, final CallContext context) {
throw new UnsupportedOperationException();
}
@@ -84,8 +83,7 @@ public class MockAccountUserApi implements AccountUserApi {
}
@Override
- public Account migrateAccount(MigrationAccountData data,
- List<CustomField> fields, List<TagDefinition> tagDefinitions, final CallContext context)
+ public Account migrateAccount(MigrationAccountData data, final CallContext context)
throws AccountApiException {
throw new UnsupportedOperationException();
}
diff --git a/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java b/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java
index 89e5f70..5cea963 100644
--- a/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java
+++ b/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java
@@ -26,11 +26,9 @@ import com.ning.billing.util.tag.TagDefinition;
import javax.annotation.Nullable;
public interface AccountUserApi {
- public Account createAccount(AccountData data, @Nullable List<CustomField> fields,
- @Nullable List<TagDefinition> tagDefinitions, CallContext context) throws AccountApiException;
+ public Account createAccount(AccountData data, CallContext context) throws AccountApiException;
- public Account migrateAccount(MigrationAccountData data, @Nullable List<CustomField> fields,
- @Nullable List<TagDefinition> tagDefinitions, CallContext context) throws AccountApiException;
+ public Account migrateAccount(MigrationAccountData data, CallContext context) throws AccountApiException;
/***
*
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
index fda34cb..f63d6d6 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
@@ -261,7 +261,7 @@ public class TestIntegrationBase implements TestListenerStatus {
}
protected Account createAccountWithPaymentMethod(AccountData accountData) throws Exception {
- Account account = accountUserApi.createAccount(accountData, null, null, context);
+ Account account = accountUserApi.createAccount(accountData, context);
assertNotNull(account);
PaymentMethodPlugin info = new PaymentMethodPlugin() {
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
index bdd3e58..dc38f73 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
@@ -185,7 +185,7 @@ public class AccountResource extends JaxRsResourceBase {
try {
AccountData data = json.toAccountData();
- final Account account = accountApi.createAccount(data, null, null, context.createContext(createdBy, reason, comment));
+ final Account account = accountApi.createAccount(data, context.createContext(createdBy, reason, comment));
return uriBuilder.buildResponse(AccountResource.class, "getAccount", account.getId());
} catch (AccountApiException e) {
final String error = String.format("Failed to create account %s", json);
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java
index 45e3d5c..6a36e2f 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java
@@ -43,15 +43,14 @@ public class BlockingAccountUserApi implements AccountUserApi {
}
@Override
- public Account createAccount(AccountData data, List<CustomField> fields, List<TagDefinition> tagDefinitions, CallContext context)
+ public Account createAccount(AccountData data, CallContext context)
throws AccountApiException {
- return userApi.createAccount(data, fields, tagDefinitions, context);
+ return userApi.createAccount(data, context);
}
@Override
- public Account migrateAccount(MigrationAccountData data, List<CustomField> fields, List<TagDefinition> tagDefinitions,
- CallContext context) throws AccountApiException {
- return userApi.migrateAccount(data, fields, tagDefinitions, context);
+ public Account migrateAccount(MigrationAccountData data, CallContext context) throws AccountApiException {
+ return userApi.migrateAccount(data, context);
}
@Override