update validation around staff

This commit is contained in:
Keith Woodlock
2012-09-09 15:28:05 +01:00
parent 1877562ea8
commit 940a665255
4 changed files with 22 additions and 17 deletions
@@ -11,13 +11,13 @@ public class StaffCommand {
private final String firstName; private final String firstName;
private final String lastName; private final String lastName;
private final Long officeId; private final Long officeId;
private final boolean loanOfficerFlag; private final Boolean loanOfficerFlag;
private final Set<String> modifiedParameters; private final Set<String> modifiedParameters;
public StaffCommand(final Set<String> modifiedParameters, final Long id, public StaffCommand(final Set<String> modifiedParameters, final Long id,
final Long officeId, final String firstName, final String lastName, final Long officeId, final String firstName, final String lastName,
final boolean loanOfficerFlag) { final Boolean loanOfficerFlag) {
this.modifiedParameters = modifiedParameters; this.modifiedParameters = modifiedParameters;
this.id = id; this.id = id;
this.firstName = firstName; this.firstName = firstName;
@@ -42,10 +42,18 @@ public class StaffCommand {
return officeId; return officeId;
} }
public boolean isLoanOfficerFlag() { public Boolean getLoanOfficerFlag() {
return loanOfficerFlag; return loanOfficerFlag;
} }
public boolean isLoanOfficerFlag() {
boolean isLoanOfficer = false;
if (loanOfficerFlag != null) {
isLoanOfficer = loanOfficerFlag.booleanValue();
}
return isLoanOfficer;
}
public boolean isFirstNameChanged() { public boolean isFirstNameChanged() {
return this.modifiedParameters.contains("firstname"); return this.modifiedParameters.contains("firstname");
} }
@@ -61,5 +69,4 @@ public class StaffCommand {
public boolean isOfficeChanged() { public boolean isOfficeChanged() {
return this.modifiedParameters.contains("officeId"); return this.modifiedParameters.contains("officeId");
} }
} }
@@ -1,9 +1,7 @@
package org.mifosng.platform.api.data; package org.mifosng.platform.api.data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import org.joda.time.LocalDate; import org.joda.time.LocalDate;
@@ -34,7 +34,6 @@ public class Staff extends AbstractAuditableCustom<AppUser, Long> {
private Office office; private Office office;
// Flag determines if employee is a loan Officer // Flag determines if employee is a loan Officer
@SuppressWarnings("unused")
@Column(name = "is_loan_officer ", nullable = false) @Column(name = "is_loan_officer ", nullable = false)
private Boolean loanOfficerFlag; private Boolean loanOfficerFlag;
@@ -20,8 +20,9 @@ public class StaffCommandValidator {
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>(); List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
DataValidatorBuilder baseDataValidator = new DataValidatorBuilder( DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("staff");
dataValidationErrors).resource("staff");
baseDataValidator.reset().parameter("officeId").value(command.getOfficeId()).notNull().integerGreaterThanZero();
baseDataValidator.reset().parameter("firstname") baseDataValidator.reset().parameter("firstname")
.value(command.getFirstName()).ignoreIfNull() .value(command.getFirstName()).ignoreIfNull()
@@ -44,20 +45,20 @@ public class StaffCommandValidator {
public void validateForUpdate() { public void validateForUpdate() {
List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>(); List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
DataValidatorBuilder baseDataValidator = new DataValidatorBuilder( DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("staff");
dataValidationErrors).resource("staff");
baseDataValidator.reset().parameter("id").value(command.getId()) baseDataValidator.reset().parameter("id").value(command.getId()).notNull();
.notNull(); baseDataValidator.reset().parameter("officeId").value(command.getOfficeId()).ignoreIfNull().integerGreaterThanZero();
baseDataValidator.reset().parameter("firstname") baseDataValidator.reset().parameter("firstname")
.value(command.getFirstName()).ignoreIfNull() .value(command.getFirstName()).ignoreIfNull()
.notExceedingLengthOf(50); .notExceedingLengthOf(50);
baseDataValidator.reset().parameter("lastname") baseDataValidator.reset().parameter("lastname")
.value(command.getFirstName()).ignoreIfNull().notBlank() .value(command.getLastName()).ignoreIfNull().notBlank()
.notExceedingLengthOf(50); .notExceedingLengthOf(50);
baseDataValidator.reset().anyOfNotNull(command.getFirstName(), baseDataValidator.reset().parameter("loanOfficerFlag").value(command.getLoanOfficerFlag()).ignoreIfNull();
command.getLastName());
baseDataValidator.reset().anyOfNotNull(command.getFirstName(), command.getLastName(), command.getOfficeId(), command.getLoanOfficerFlag());
if (!dataValidationErrors.isEmpty()) { if (!dataValidationErrors.isEmpty()) {
throw new PlatformApiDataValidationException( throw new PlatformApiDataValidationException(