Details
diff --git a/account/src/main/java/com/ning/billing/account/api/Account.java b/account/src/main/java/com/ning/billing/account/api/Account.java
index 9fcc93e..f3fbfeb 100644
--- a/account/src/main/java/com/ning/billing/account/api/Account.java
+++ b/account/src/main/java/com/ning/billing/account/api/Account.java
@@ -28,7 +28,8 @@ public class Account extends CustomizableEntityBase implements IAccount {
private String externalKey;
private String email;
- private String name;
+ private String firstName;
+ private String lastName;
private String phone;
private Currency currency;
private int billCycleDay;
@@ -48,7 +49,8 @@ public class Account extends CustomizableEntityBase implements IAccount {
this();
this.externalKey = data.getExternalKey();
this.email = data.getEmail();
- this.name = data.getName();
+ this.firstName = data.getFirstName();
+ this.lastName = data.getLastName();
this.phone = data.getPhone();
this.currency = data.getCurrency();
this.billCycleDay = data.getBillCycleDay();
@@ -70,12 +72,22 @@ public class Account extends CustomizableEntityBase implements IAccount {
}
@Override
- public String getName() {
- return name;
+ public String getFirstName() {
+ return firstName;
}
- public Account name(String name) {
- this.name = name;
+ public Account firstName(String firstName) {
+ this.firstName = firstName;
+ return this;
+ }
+
+ @Override
+ public String getLastName() {
+ return lastName;
+ }
+
+ public Account lastName(String lastName) {
+ this.lastName = lastName;
return this;
}
@@ -168,7 +180,8 @@ public class Account extends CustomizableEntityBase implements IAccount {
this.originalData = dao.getAccountById(id);
this.externalKey = originalData.getExternalKey();
this.email = originalData.getEmail();
- this.name = originalData.getName();
+ this.firstName = originalData.getFirstName();
+ this.lastName = originalData.getLastName();
this.phone = originalData.getPhone();
this.currency = originalData.getCurrency();
this.billCycleDay = originalData.getBillCycleDay();
diff --git a/account/src/main/java/com/ning/billing/account/api/AccountChange.java b/account/src/main/java/com/ning/billing/account/api/AccountChange.java
index b13a851..e583eab 100644
--- a/account/src/main/java/com/ning/billing/account/api/AccountChange.java
+++ b/account/src/main/java/com/ning/billing/account/api/AccountChange.java
@@ -53,8 +53,11 @@ public class AccountChange implements IAccountChange {
if (!newData.getEmail().equals(oldData.getEmail())) {
changedFields.add(new ChangedField("email", newData.getEmail(), oldData.getEmail()));
}
- if (!newData.getName().equals(oldData.getName())) {
- changedFields.add(new ChangedField("name", newData.getName(), oldData.getName()));
+ if (!newData.getFirstName().equals(oldData.getFirstName())) {
+ changedFields.add(new ChangedField("firstName", newData.getFirstName(), oldData.getFirstName()));
+ }
+ if (!newData.getLastName().equals(oldData.getLastName())) {
+ changedFields.add(new ChangedField("lastName", newData.getLastName(), oldData.getLastName()));
}
if (!newData.getPhone().equals(oldData.getPhone())) {
changedFields.add(new ChangedField("phone", newData.getPhone(), oldData.getPhone()));
diff --git a/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java b/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java
index 63b3444..e92c397 100644
--- a/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java
+++ b/account/src/main/java/com/ning/billing/account/dao/IAccountDaoSql.java
@@ -63,11 +63,14 @@ public interface IAccountDaoSql extends Transactional<IAccountDaoSql>, CloseMe {
UUID id = UUID.fromString(result.getString("id"));
String externalKey = result.getString("external_key");
String email = result.getString("email");
- String name = result.getString("name");
+ String firstName = result.getString("first_name");
+ String lastName = result.getString("last_name");
String phone = result.getString("phone");
Currency currency = Currency.valueOf(result.getString("currency"));
- return new Account(id).externalKey(externalKey).email(email).name(name).phone(phone).currency(currency);
+ return new Account(id).externalKey(externalKey).email(email)
+ .firstName(firstName).lastName(lastName)
+ .phone(phone).currency(currency);
}
}
@@ -82,7 +85,8 @@ public interface IAccountDaoSql extends Transactional<IAccountDaoSql>, CloseMe {
q.bind("id", account.getId().toString());
q.bind("externalKey", account.getExternalKey());
q.bind("email", account.getEmail());
- q.bind("name", account.getName());
+ q.bind("firstName", account.getFirstName());
+ q.bind("lastName", account.getLastName());
q.bind("phone", account.getPhone());
q.bind("currency", account.getCurrency().toString());
}
diff --git a/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg b/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg
index b8faa2a..8edbbef 100644
--- a/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg
+++ b/account/src/main/resources/com/ning/billing/account/dao/IAccountDaoSql.sql.stg
@@ -1,36 +1,32 @@
group IAccountDaoSql;
insertAccount() ::= <<
- insert into accounts (id, external_key, email, name, phone, currency)
- values (:id, :externalKey, :email, :name, :phone, :currency);
+ insert into accounts (id, external_key, email, first_name, last_name, phone, currency)
+ values (:id, :externalKey, :email, :firstName, :lastName, :phone, :currency);
>>
updateAccount() ::= <<
update accounts
- set external_key = :externalKey, email = :email, name = :name, phone = :phone, currency = :currency
+ set external_key = :externalKey, email = :email, first_name = :firstName, last_name = :lastName,
+ phone = :phone, currency = :currency
where id = :id;
>>
getAccountByKey() ::= <<
- select id, external_key, email, name, phone, currency
+ select id, external_key, email, first_name, last_name, phone, currency
from accounts
- where
- external_key = :externalKey
- ;
+ where external_key = :externalKey;
>>
getAccountById() ::= <<
- select id, external_key, email, name, phone, currency
+ select id, external_key, email, first_name, last_name, phone, currency
from accounts
- where
- id = :id
- ;
+ where id = :id;
>>
getAccounts() ::= <<
- select id, external_key, email, name, phone, currency
- from accounts
- ;
+ select id, external_key, email, first_name, last_name, phone, currency
+ from accounts;
>>
test() ::= <<
diff --git a/account/src/main/resources/com/ning/billing/account/ddl.sql b/account/src/main/resources/com/ning/billing/account/ddl.sql
index 6a9a23c..b6f3c0b 100644
--- a/account/src/main/resources/com/ning/billing/account/ddl.sql
+++ b/account/src/main/resources/com/ning/billing/account/ddl.sql
@@ -3,12 +3,14 @@ CREATE TABLE accounts (
id char(36) NOT NULL,
external_key varchar(128) NULL,
email varchar(50) DEFAULT NULL,
- name varchar(100) NOT NULL,
+ first_name varchar(100) NOT NULL,
+ last_name varchar(100) NOT NULL,
phone varchar(13) DEFAULT NULL,
currency char(3) NOT NULL,
PRIMARY KEY(id)
) ENGINE=innodb;
CREATE UNIQUE INDEX accounts_external_key ON accounts(external_key);
+CREATE UNIQUE INDEX accounts_email ON accounts(email);
DROP TABLE IF EXISTS custom_fields;
CREATE TABLE custom_fields (
diff --git a/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java b/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
index 05619d3..635af22 100644
--- a/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/TestSimpleAccountDao.java
@@ -29,14 +29,14 @@ import static org.testng.Assert.*;
@Test(groups = {"account-dao"})
public class TestSimpleAccountDao extends AccountDaoTestBase {
private final String key = "test1234";
- private final String name = "Wesley";
+ private final String firstName = "Wesley";
private final String email = "dreadpirateroberts@therevenge.com";
private Account createTestAccount() {
Account account = Account.create();
String thisKey = key + UUID.randomUUID().toString();
- String thisName = name + UUID.randomUUID().toString();
- account.externalKey(thisKey).name(thisName).email(email).currency(Currency.USD);
+ String lastName = UUID.randomUUID().toString();
+ account.externalKey(thisKey).firstName(firstName).lastName(lastName).email(email).currency(Currency.USD);
return account;
}
@@ -64,14 +64,16 @@ public class TestSimpleAccountDao extends AccountDaoTestBase {
Account account = createTestAccount();
UUID id = account.getId();
String key = account.getExternalKey();
- String name = account.getName();
+ String firstName = account.getFirstName();
+ String lastName = account.getLastName();
account.save();
account = Account.loadAccount(id);
assertNotNull(account);
assertEquals(account.getId(), id);
assertEquals(account.getExternalKey(), key);
- assertEquals(account.getName(), name);
+ assertEquals(account.getFirstName(), firstName);
+ assertEquals(account.getLastName(), lastName);
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java b/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java
index d9f4009..44466f4 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java
@@ -35,7 +35,13 @@ public class MockAccount implements IAccount
}
@Override
- public String getName()
+ public String getFirstName()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getLastName()
{
throw new UnsupportedOperationException();
}
diff --git a/api/src/main/java/com/ning/billing/account/api/IAccountData.java b/api/src/main/java/com/ning/billing/account/api/IAccountData.java
index dc85eb8..2f2eb92 100644
--- a/api/src/main/java/com/ning/billing/account/api/IAccountData.java
+++ b/api/src/main/java/com/ning/billing/account/api/IAccountData.java
@@ -22,7 +22,9 @@ public interface IAccountData {
public String getExternalKey();
- public String getName();
+ public String getFirstName();
+
+ public String getLastName();
public String getEmail();
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
index 3485ba8..d42cc61 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
@@ -279,8 +279,12 @@ public abstract class TestUserApiBase {
protected IAccount getAccount() {
IAccount account = new IAccount() {
@Override
- public String getName() {
- return "accountName";
+ public String getFirstName() {
+ return "accountFirstName";
+ }
+ @Override
+ public String getLastName() {
+ return "accountLastName";
}
@Override
public String getEmail() {