@Override
public Account newAccount(Account account) {
try {
int id = dbCreate(
"INSERT INTO ACCOUNTS (NAME, FULLNAME, EMAIL, MODE, PASSWORD, ROLE) " +
"VALUES (:name, :fullName, :email, :mode, :password, :role)",
params("name", account.getName())
.addValue("fullName", account.getFullName())
.addValue("email", account.getEmail())
.addValue("mode", account.getAuthenticationSource().getId())
.addValue("password", "")
.addValue("role", account.getRole().name())
);
return account.withId(ID.of(id));
} catch (DuplicateKeyException ex) {
throw new AccountNameAlreadyDefinedException(account.getName());
}
}