MIFOSX-369: validate client activation date on activate api also.

This commit is contained in:
Keith Woodlock
2013-05-20 15:29:30 +01:00
parent 6a6f576a61
commit 5b53c7f8ed
@@ -168,7 +168,14 @@ public final class Client extends AbstractPersistable<Long> {
} }
deriveDisplayName(); deriveDisplayName();
validateNameParts(); validate();
}
private void validate() {
final List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
validateNameParts(dataValidationErrors);
validateActivationDate(dataValidationErrors);
if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); }
} }
public boolean isAccountNumberRequiresAutoGeneration() { public boolean isAccountNumberRequiresAutoGeneration() {
@@ -218,6 +225,8 @@ public final class Client extends AbstractPersistable<Long> {
this.activationDate = activationLocalDate.toDate(); this.activationDate = activationLocalDate.toDate();
this.status = ClientStatus.ACTIVE.getValue(); this.status = ClientStatus.ACTIVE.getValue();
validate();
} }
public boolean isNotActive() { public boolean isNotActive() {
@@ -286,8 +295,6 @@ public final class Client extends AbstractPersistable<Long> {
this.fullname = newValue; this.fullname = newValue;
} }
validateNameParts();
final String dateFormatAsInput = command.dateFormat(); final String dateFormatAsInput = command.dateFormat();
final String localeAsInput = command.locale(); final String localeAsInput = command.locale();
@@ -301,14 +308,14 @@ public final class Client extends AbstractPersistable<Long> {
this.activationDate = newValue.toDate(); this.activationDate = newValue.toDate();
} }
validate();
deriveDisplayName(); deriveDisplayName();
return actualChanges; return actualChanges;
} }
private void validateNameParts() { private void validateNameParts(final List<ApiParameterError> dataValidationErrors) {
final List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("client"); final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("client");
if (StringUtils.isNotBlank(this.fullname)) { if (StringUtils.isNotBlank(this.fullname)) {
@@ -331,7 +338,9 @@ public final class Client extends AbstractPersistable<Long> {
baseDataValidator.reset().parameter(ClientApiConstants.lastnameParamName).value(this.lastname).notBlank() baseDataValidator.reset().parameter(ClientApiConstants.lastnameParamName).value(this.lastname).notBlank()
.notExceedingLengthOf(50); .notExceedingLengthOf(50);
} }
}
private void validateActivationDate(final List<ApiParameterError> dataValidationErrors) {
if (this.activationDate != null) { if (this.activationDate != null) {
if (office.isOpeningDateAfter(getActivationLocalDate())) { if (office.isOpeningDateAfter(getActivationLocalDate())) {
final String defaultUserMessage = "Client activation date cannot be a date before the office opening date."; final String defaultUserMessage = "Client activation date cannot be a date before the office opening date.";
@@ -341,8 +350,6 @@ public final class Client extends AbstractPersistable<Long> {
dataValidationErrors.add(error); dataValidationErrors.add(error);
} }
} }
if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); }
} }
private void deriveDisplayName() { private void deriveDisplayName() {