dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #40299
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 20414: validate TEA ValueType using TEAService in EnrollmentService
------------------------------------------------------------
revno: 20414
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2015-09-30 15:37:01 +0700
message:
validate TEA ValueType using TEAService in EnrollmentService
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java
dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentityinstance/TrackedEntityInstanceQueryTest.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java 2015-09-30 05:42:06 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityInstanceService.java 2015-09-30 08:37:01 +0000
@@ -166,7 +166,7 @@
* @param params the TrackedEntityInstanceQueryParams.
* @throws IllegalQueryException if the given params is invalid.
*/
- void validateQueryParams( TrackedEntityInstanceQueryParams params )
+ void validate( TrackedEntityInstanceQueryParams params )
throws IllegalQueryException;
/**
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2015-09-30 05:42:06 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentity/DefaultTrackedEntityInstanceService.java 2015-09-30 08:37:01 +0000
@@ -59,7 +59,6 @@
import org.hisp.dhis.validation.ValidationCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.Assert;
import java.util.Collection;
import java.util.Date;
@@ -120,7 +119,7 @@
public List<TrackedEntityInstance> getTrackedEntityInstances( TrackedEntityInstanceQueryParams params )
{
decideAccess( params );
- validateQueryParams( params );
+ validate( params );
// ---------------------------------------------------------------------
// Verify params
@@ -159,7 +158,7 @@
public Grid getTrackedEntityInstancesGrid( TrackedEntityInstanceQueryParams params )
{
decideAccess( params );
- validateQueryParams( params );
+ validate( params );
// ---------------------------------------------------------------------
// Verify params
@@ -295,7 +294,7 @@
}
@Override
- public void validateQueryParams( TrackedEntityInstanceQueryParams params )
+ public void validate( TrackedEntityInstanceQueryParams params )
throws IllegalQueryException
{
String violation = null;
@@ -725,5 +724,4 @@
return null;
}
-
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentityinstance/TrackedEntityInstanceQueryTest.java'
--- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentityinstance/TrackedEntityInstanceQueryTest.java 2015-09-30 04:01:49 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/trackedentityinstance/TrackedEntityInstanceQueryTest.java 2015-09-30 08:37:01 +0000
@@ -49,6 +49,6 @@
{
TrackedEntityInstanceQueryParams params = new TrackedEntityInstanceQueryParams();
params.setOrganisationUnitMode( OrganisationUnitSelectionMode.ALL );
- instanceService.validateQueryParams( params );
+ instanceService.validate( params );
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2015-09-24 08:32:10 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/enrollment/AbstractEnrollmentService.java 2015-09-30 08:37:01 +0000
@@ -35,7 +35,6 @@
import org.hisp.dhis.common.OrganisationUnitSelectionMode;
import org.hisp.dhis.common.QueryItem;
import org.hisp.dhis.common.QueryOperator;
-import org.hisp.dhis.common.ValueType;
import org.hisp.dhis.commons.collection.CachingMap;
import org.hisp.dhis.dbms.DbmsManager;
import org.hisp.dhis.dxf2.events.event.Note;
@@ -56,9 +55,8 @@
import org.hisp.dhis.program.ProgramStatus;
import org.hisp.dhis.program.ProgramTrackedEntityAttribute;
import org.hisp.dhis.system.callable.IdentifiableObjectSearchCallable;
-import org.hisp.dhis.system.util.DateUtils;
-import org.hisp.dhis.system.util.MathUtils;
import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
+import org.hisp.dhis.trackedentity.TrackedEntityAttributeService;
import org.hisp.dhis.trackedentity.TrackedEntityInstanceQueryParams;
import org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValue;
import org.hisp.dhis.trackedentityattributevalue.TrackedEntityAttributeValueService;
@@ -95,6 +93,9 @@
protected org.hisp.dhis.trackedentity.TrackedEntityInstanceService teiService;
@Autowired
+ protected TrackedEntityAttributeService trackedEntityAttributeService;
+
+ @Autowired
protected TrackedEntityAttributeValueService trackedEntityAttributeValueService;
@Autowired
@@ -606,46 +607,19 @@
private List<ImportConflict> validateAttributeType( Attribute attribute )
{
List<ImportConflict> importConflicts = Lists.newArrayList();
- TrackedEntityAttribute teAttribute = getTrackedEntityAttribute( attribute.getAttribute() );
+ TrackedEntityAttribute trackedEntityAttribute = getTrackedEntityAttribute( attribute.getAttribute() );
- if ( teAttribute == null )
+ if ( trackedEntityAttribute == null )
{
importConflicts.add( new ImportConflict( "Attribute.attribute", "Does not point to a valid attribute." ) );
return importConflicts;
}
- if ( attribute.getValue().length() > 255 )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value length is greater than 256 chars." ) );
- }
+ String errorMessage = trackedEntityAttributeService.validateValueType( trackedEntityAttribute, attribute.getValue() );
- if ( ValueType.NUMBER == teAttribute.getValueType() && !MathUtils.isNumeric( attribute.getValue() ) )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value is not numeric." ) );
- }
- else if ( ValueType.BOOLEAN == teAttribute.getValueType() && !MathUtils.isBool( attribute.getValue() ) )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value is not boolean." ) );
- }
- else if ( ValueType.DATE == teAttribute.getValueType() && !DateUtils.dateIsValid( attribute.getValue() ) )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value is not date." ) );
- }
- else if ( ValueType.TRUE_ONLY == teAttribute.getValueType() && "true".equals( attribute.getValue() ) )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value is not true (true-only value type)." ) );
- }
- else if ( ValueType.USERNAME == teAttribute.getValueType() )
- {
- if ( userService.getUserCredentialsByUsername( attribute.getValue() ) == null )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value is not pointing to a valid username." ) );
- }
- }
- else if ( ValueType.OPTION_SET == teAttribute.getValueType()
- && !teAttribute.getOptionSet().getOptionCodes().contains( attribute.getValue() ) )
- {
- importConflicts.add( new ImportConflict( "Attribute.value", "Value is not pointing to a valid option code." ) );
+ if ( errorMessage != null )
+ {
+ importConflicts.add( new ImportConflict( "Attribute.value", errorMessage ) );
}
return importConflicts;