#MIFOSX-765 fixes validation submittedOnDate
This commit is contained in:
+35
-3
@@ -2053,7 +2053,8 @@ Content-Type: application/json Request Body:
|
|||||||
"dateFormat": "dd MMMM yyyy",
|
"dateFormat": "dd MMMM yyyy",
|
||||||
"locale": "en",
|
"locale": "en",
|
||||||
"active": true,
|
"active": true,
|
||||||
"activationDate": "04 March 2009"
|
"activationDate": "04 March 2009",
|
||||||
|
"submittedOnDate":"04 March 2009"
|
||||||
}
|
}
|
||||||
</code>
|
</code>
|
||||||
<code class="method-response">
|
<code class="method-response">
|
||||||
@@ -2378,6 +2379,16 @@ GET https://DomainName/api/v1/clients/{clientId}
|
|||||||
"displayName": "Client of group",
|
"displayName": "Client of group",
|
||||||
"officeId": 1,
|
"officeId": 1,
|
||||||
"officeName": "Head Office",
|
"officeName": "Head Office",
|
||||||
|
"timeline": {
|
||||||
|
"activatedOnDate": [
|
||||||
|
2009,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"activatedByUsername": "mifos",
|
||||||
|
"activatedByFirstname": "App",
|
||||||
|
"activatedByLastname": "Administrator"
|
||||||
|
},
|
||||||
"groups": [
|
"groups": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
@@ -3908,7 +3919,8 @@ Content-Type: application/json Request Body:
|
|||||||
"dateFormat": "dd MMMM yyyy",
|
"dateFormat": "dd MMMM yyyy",
|
||||||
"locale": "en",
|
"locale": "en",
|
||||||
"active": true,
|
"active": true,
|
||||||
"activationDate": "04 March 2009"
|
"activationDate": "04 March 2009",
|
||||||
|
"submittedOnDate":"04 March 2009"
|
||||||
}
|
}
|
||||||
</code>
|
</code>
|
||||||
<code class="method-response">
|
<code class="method-response">
|
||||||
@@ -4127,7 +4139,17 @@ GET https://DomainName/mifosng-provider/api/v1/groups/1
|
|||||||
"externalId": "000-1A",
|
"externalId": "000-1A",
|
||||||
"officeId": 1,
|
"officeId": 1,
|
||||||
"officeName": "Head Office",
|
"officeName": "Head Office",
|
||||||
"hierarchy": ".1."
|
"hierarchy": ".1.",
|
||||||
|
"timeline": {
|
||||||
|
"activatedOnDate": [
|
||||||
|
2013,
|
||||||
|
11,
|
||||||
|
14
|
||||||
|
],
|
||||||
|
"activatedByUsername": "mifos",
|
||||||
|
"activatedByFirstname": "App",
|
||||||
|
"activatedByLastname": "Administrator"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</code>
|
</code>
|
||||||
</div>
|
</div>
|
||||||
@@ -4144,6 +4166,16 @@ GET https://DomainName/mifosng-provider/api/v1/groups/1?associations=clientMembe
|
|||||||
"officeId": 1,
|
"officeId": 1,
|
||||||
"officeName": "Head Office",
|
"officeName": "Head Office",
|
||||||
"hierarchy": ".1.",
|
"hierarchy": ".1.",
|
||||||
|
"timeline": {
|
||||||
|
"activatedOnDate": [
|
||||||
|
2013,
|
||||||
|
11,
|
||||||
|
14
|
||||||
|
],
|
||||||
|
"activatedByUsername": "mifos",
|
||||||
|
"activatedByFirstname": "App",
|
||||||
|
"activatedByLastname": "Administrator"
|
||||||
|
},
|
||||||
"clientMembers": [
|
"clientMembers": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
|||||||
+1
-1
@@ -57,7 +57,7 @@ public class ClientApiConstants {
|
|||||||
public static final Set<String> CLIENT_CREATE_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName,
|
public static final Set<String> CLIENT_CREATE_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName,
|
||||||
dateFormatParamName, groupIdParamName, accountNoParamName, externalIdParamName, mobileNoParamName, firstnameParamName,
|
dateFormatParamName, groupIdParamName, accountNoParamName, externalIdParamName, mobileNoParamName, firstnameParamName,
|
||||||
middlenameParamName, lastnameParamName, fullnameParamName, officeIdParamName, activeParamName, activationDateParamName,
|
middlenameParamName, lastnameParamName, fullnameParamName, officeIdParamName, activeParamName, activationDateParamName,
|
||||||
staffIdParamName));
|
staffIdParamName,submittedOnDateParamName));
|
||||||
|
|
||||||
public static final Set<String> CLIENT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName,
|
public static final Set<String> CLIENT_UPDATE_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName,
|
||||||
dateFormatParamName, accountNoParamName, externalIdParamName, mobileNoParamName, firstnameParamName, middlenameParamName,
|
dateFormatParamName, accountNoParamName, externalIdParamName, mobileNoParamName, firstnameParamName, middlenameParamName,
|
||||||
|
|||||||
+6
@@ -132,6 +132,12 @@ public final class ClientDataValidator {
|
|||||||
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.fromApiJsonHelper.parameterExists(ClientApiConstants.submittedOnDateParamName, element))
|
||||||
|
{
|
||||||
|
final LocalDate submittedOnDate = this.fromApiJsonHelper.extractLocalDateNamed(ClientApiConstants.submittedOnDateParamName, element);
|
||||||
|
baseDataValidator.reset().parameter(ClientApiConstants.submittedOnDateParamName).value(submittedOnDate).notNull();
|
||||||
|
}
|
||||||
|
|
||||||
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -214,6 +214,18 @@ public final class Client extends AbstractPersistable<Long> {
|
|||||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(activationDate !=null && submittedOnDate.isAfter(activationDate)) {
|
||||||
|
|
||||||
|
final String defaultUserMessage = "submitted date cannot be after the activation date";
|
||||||
|
final ApiParameterError error = ApiParameterError.parameterError("error.msg.clients.submittedOnDate.after.activation.date",
|
||||||
|
defaultUserMessage, ClientApiConstants.submittedOnDateParamName, submittedOnDate);
|
||||||
|
|
||||||
|
final List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||||
|
dataValidationErrors.add(error);
|
||||||
|
|
||||||
|
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||||
|
}
|
||||||
|
|
||||||
this.submittedOnDate = submittedOnDate.toDate();
|
this.submittedOnDate = submittedOnDate.toDate();
|
||||||
this.submittedBy = currentUser;
|
this.submittedBy = currentUser;
|
||||||
|
|
||||||
@@ -325,6 +337,7 @@ public final class Client extends AbstractPersistable<Long> {
|
|||||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.activationDate = activationLocalDate.toDate();
|
this.activationDate = activationLocalDate.toDate();
|
||||||
this.activatedBy = currentUser;
|
this.activatedBy = currentUser;
|
||||||
this.officeJoiningDate = this.activationDate;
|
this.officeJoiningDate = this.activationDate;
|
||||||
|
|||||||
+1
-1
@@ -65,7 +65,7 @@ public class GroupingTypesApiConstants {
|
|||||||
|
|
||||||
public static final Set<String> CENTER_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName,
|
public static final Set<String> CENTER_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName,
|
||||||
dateFormatParamName, idParamName, nameParamName, externalIdParamName, officeIdParamName, staffIdParamName, activeParamName,
|
dateFormatParamName, idParamName, nameParamName, externalIdParamName, officeIdParamName, staffIdParamName, activeParamName,
|
||||||
activationDateParamName, groupMembersParamName));
|
activationDateParamName, groupMembersParamName,submittedOnDateParamName));
|
||||||
|
|
||||||
public static final Set<String> GROUP_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName, dateFormatParamName,
|
public static final Set<String> GROUP_REQUEST_DATA_PARAMETERS = new HashSet<String>(Arrays.asList(localeParamName, dateFormatParamName,
|
||||||
idParamName, nameParamName, externalIdParamName, centerIdParamName, officeIdParamName, staffIdParamName, activeParamName,
|
idParamName, nameParamName, externalIdParamName, centerIdParamName, officeIdParamName, staffIdParamName, activeParamName,
|
||||||
|
|||||||
@@ -188,6 +188,18 @@ public final class Group extends AbstractPersistable<Long> {
|
|||||||
throw new PlatformApiDataValidationException(dataValidationErrors);
|
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(activationDate != null && submittedOnDate.isAfter(activationDate)) {
|
||||||
|
|
||||||
|
final String defaultUserMessage = "submitted date cannot be after the activation date";
|
||||||
|
final ApiParameterError error = ApiParameterError.parameterError("error.msg.group.submittedOnDate.after.activation.date",
|
||||||
|
defaultUserMessage, GroupingTypesApiConstants.submittedOnDateParamName, submittedOnDate);
|
||||||
|
|
||||||
|
final List<ApiParameterError> dataValidationErrors = new ArrayList<ApiParameterError>();
|
||||||
|
dataValidationErrors.add(error);
|
||||||
|
|
||||||
|
throw new PlatformApiDataValidationException(dataValidationErrors);
|
||||||
|
}
|
||||||
|
|
||||||
this.submittedOnDate = submittedOnDate.toDate();
|
this.submittedOnDate = submittedOnDate.toDate();
|
||||||
this.submittedBy = currentUser;
|
this.submittedBy = currentUser;
|
||||||
}
|
}
|
||||||
|
|||||||
+18
@@ -97,6 +97,12 @@ public final class GroupingTypesDataValidator {
|
|||||||
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.fromApiJsonHelper.parameterExists(GroupingTypesApiConstants.submittedOnDateParamName, element))
|
||||||
|
{
|
||||||
|
final LocalDate submittedOnDate = this.fromApiJsonHelper.extractLocalDateNamed(GroupingTypesApiConstants.submittedOnDateParamName, element);
|
||||||
|
baseDataValidator.reset().parameter(GroupingTypesApiConstants.submittedOnDateParamName).value(submittedOnDate).notNull();
|
||||||
|
}
|
||||||
|
|
||||||
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,6 +161,12 @@ public final class GroupingTypesDataValidator {
|
|||||||
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.fromApiJsonHelper.parameterExists(GroupingTypesApiConstants.submittedOnDateParamName, element))
|
||||||
|
{
|
||||||
|
final LocalDate submittedOnDate = this.fromApiJsonHelper.extractLocalDateNamed(GroupingTypesApiConstants.submittedOnDateParamName, element);
|
||||||
|
baseDataValidator.reset().parameter(GroupingTypesApiConstants.submittedOnDateParamName).value(submittedOnDate).notNull();
|
||||||
|
}
|
||||||
|
|
||||||
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,6 +221,12 @@ public final class GroupingTypesDataValidator {
|
|||||||
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
baseDataValidator.reset().parameter(ClientApiConstants.activeParamName).value(active).trueOrFalseRequired(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.fromApiJsonHelper.parameterExists(GroupingTypesApiConstants.submittedOnDateParamName, element))
|
||||||
|
{
|
||||||
|
final LocalDate submittedOnDate = this.fromApiJsonHelper.extractLocalDateNamed(GroupingTypesApiConstants.submittedOnDateParamName, element);
|
||||||
|
baseDataValidator.reset().parameter(GroupingTypesApiConstants.submittedOnDateParamName).value(submittedOnDate).notNull();
|
||||||
|
}
|
||||||
|
|
||||||
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
throwExceptionIfValidationWarningsExist(dataValidationErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user