=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummaries.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummaries.java 2015-06-08 03:02:05 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummaries.java 2015-07-08 04:24:08 +0000 @@ -33,6 +33,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import org.hisp.dhis.common.DxfNamespaces; +import org.hisp.dhis.dxf2.webmessage.AbstractWebMessageResponse; import java.util.ArrayList; import java.util.List; @@ -41,7 +42,7 @@ * @author Morten Olav Hansen */ @JacksonXmlRootElement( localName = "importSummaries", namespace = DxfNamespaces.DXF_2_0 ) -public class ImportSummaries +public class ImportSummaries extends AbstractWebMessageResponse { private int imported; @@ -53,6 +54,7 @@ public ImportSummaries() { + } public void addImportSummaries( ImportSummaries importSummaries ) === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java 2015-04-05 20:00:35 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/importsummary/ImportSummary.java 2015-07-08 04:24:08 +0000 @@ -28,18 +28,18 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.HashSet; -import java.util.Set; - -import org.hisp.dhis.common.DxfNamespaces; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; +import org.hisp.dhis.common.DxfNamespaces; +import org.hisp.dhis.dxf2.webmessage.AbstractWebMessageResponse; + +import java.util.HashSet; +import java.util.Set; @JacksonXmlRootElement( localName = "importSummary", namespace = DxfNamespaces.DXF_2_0 ) -public class ImportSummary +public class ImportSummary extends AbstractWebMessageResponse { private ImportStatus status = ImportStatus.SUCCESS; @@ -57,15 +57,18 @@ public ImportSummary() { + } public ImportSummary( ImportStatus status ) { + this(); this.status = status; } public ImportSummary( ImportStatus status, String description ) { + this(); this.status = status; this.description = description; } @@ -78,7 +81,7 @@ { return this.status != null && this.status.equals( status ); } - + // ------------------------------------------------------------------------- // Getters and setters // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportTypeSummary.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportTypeSummary.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportTypeSummary.java 2015-07-08 04:24:08 +0000 @@ -44,8 +44,7 @@ * @author Morten Olav Hansen */ @JacksonXmlRootElement( localName = "typeSummary", namespace = DxfNamespaces.DXF_2_0 ) -public class ImportTypeSummary - extends ImportSummary +public class ImportTypeSummary extends ImportSummary { private String type; === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/webmessage/AbstractWebMessageResponse.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/webmessage/AbstractWebMessageResponse.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/webmessage/AbstractWebMessageResponse.java 2015-07-08 04:24:08 +0000 @@ -42,27 +42,27 @@ *

* Some examples might be 'ImportCount', 'ImportSummary', etc. */ - private String type; + private String responseType; public AbstractWebMessageResponse() { - this.type = getClass().getSimpleName().replaceFirst( "WebMessageResponse", "" ); + this.responseType = getClass().getSimpleName().replaceFirst( "WebMessageResponse", "" ); } - public AbstractWebMessageResponse( String type ) + public AbstractWebMessageResponse( String responseType ) { - this.type = type; + this.responseType = responseType; } @JsonProperty @JacksonXmlProperty( isAttribute = true ) - public String getType() + public String getResponseType() { - return type; + return responseType; } - public void setType( String type ) + public void setResponseType( String responseType ) { - this.type = type; + this.responseType = responseType; } } === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/webmessage/WebMessageStatus.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/webmessage/WebMessageStatus.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/webmessage/WebMessageStatus.java 2015-07-08 04:24:08 +0000 @@ -33,5 +33,5 @@ */ public enum WebMessageStatus { - OK, ERROR + OK, WARNING, ERROR } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java 2015-06-11 02:45:21 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java 2015-07-08 04:24:08 +0000 @@ -314,10 +314,10 @@ property.getSetterMethod().invoke( persistedObject, value ); } - ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject, + ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject, ImportStrategy.UPDATE, MergeStrategy.MERGE ); - serialize( request, response, summary ); + webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request ); } private List getJsonProperties( String payload ) throws IOException @@ -395,10 +395,10 @@ property.getSetterMethod().invoke( persistedObject, value ); - ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject, + ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), persistedObject, ImportStrategy.UPDATE, MergeStrategy.MERGE ); - serialize( request, response, summary ); + webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request ); } protected void translate( List entities, TranslateOptions translateOptions ) @@ -496,21 +496,21 @@ preCreateEntity( parsed ); - ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, + ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, ImportStrategy.CREATE, importOptions.getMergeStrategy() ); - if ( ImportStatus.SUCCESS.equals( summary.getStatus() ) ) + if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) ) { postCreateEntity( parsed ); - if ( summary.getImportCount().getImported() == 1 && summary.getLastImported() != null ) + if ( importTypeSummary.getImportCount().getImported() == 1 && importTypeSummary.getLastImported() != null ) { response.setHeader( "Location", contextService.getApiPath() + getSchema().getRelativeApiEndpoint() - + "/" + summary.getLastImported() ); + + "/" + importTypeSummary.getLastImported() ); } } - renderService.toXml( response.getOutputStream(), summary ); + webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request ); } @RequestMapping( method = RequestMethod.POST, consumes = "application/json" ) @@ -526,21 +526,21 @@ preCreateEntity( parsed ); - ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, + ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, ImportStrategy.CREATE, importOptions.getMergeStrategy() ); - if ( ImportStatus.SUCCESS.equals( summary.getStatus() ) ) + if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) ) { postCreateEntity( parsed ); - if ( summary.getImportCount().getImported() == 1 && summary.getLastImported() != null ) + if ( importTypeSummary.getImportCount().getImported() == 1 && importTypeSummary.getLastImported() != null ) { response.setHeader( "Location", contextService.getApiPath() + getSchema().getRelativeApiEndpoint() - + "/" + summary.getLastImported() ); + + "/" + importTypeSummary.getLastImported() ); } } - renderService.toJson( response.getOutputStream(), summary ); + webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request ); } //-------------------------------------------------------------------------- @@ -567,15 +567,15 @@ preUpdateEntity( parsed ); - ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, + ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, ImportStrategy.UPDATE, importOptions.getMergeStrategy() ); - if ( ImportStatus.SUCCESS.equals( summary.getStatus() ) ) + if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) ) { postUpdateEntity( parsed ); } - renderService.toXml( response.getOutputStream(), summary ); + webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request ); } @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE ) @@ -598,15 +598,15 @@ preUpdateEntity( parsed ); - ImportTypeSummary summary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, + ImportTypeSummary importTypeSummary = importService.importObject( currentUserService.getCurrentUser().getUid(), parsed, ImportStrategy.UPDATE, importOptions.getMergeStrategy() ); - if ( ImportStatus.SUCCESS.equals( summary.getStatus() ) ) + if ( ImportStatus.SUCCESS.equals( importTypeSummary.getStatus() ) ) { postUpdateEntity( parsed ); } - renderService.toJson( response.getOutputStream(), summary ); + webMessageService.send( WebMessageUtils.importTypeSummary( importTypeSummary ), response, request ); } //-------------------------------------------------------------------------- === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/TrackedEntityInstanceController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/TrackedEntityInstanceController.java 2015-07-08 03:52:20 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/TrackedEntityInstanceController.java 2015-07-08 04:24:08 +0000 @@ -178,6 +178,7 @@ model.addAttribute( "model", grid ); model.addAttribute( "viewClass", "detailed" ); + return "grid"; } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/utils/WebMessageUtils.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/utils/WebMessageUtils.java 2015-07-08 03:52:20 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/utils/WebMessageUtils.java 2015-07-08 04:24:08 +0000 @@ -28,6 +28,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import org.hisp.dhis.dxf2.importsummary.ImportStatus; +import org.hisp.dhis.dxf2.metadata.ImportTypeSummary; import org.hisp.dhis.dxf2.webmessage.WebMessage; import org.hisp.dhis.dxf2.webmessage.WebMessageResponse; import org.hisp.dhis.dxf2.webmessage.WebMessageStatus; @@ -172,6 +174,31 @@ return createWebMessage( message, devMessage, WebMessageStatus.ERROR, HttpServletResponse.SC_UNAUTHORIZED ); } + public static WebMessage importTypeSummary( ImportTypeSummary importTypeSummary ) + { + WebMessage webMessage = new WebMessage(); + + if ( importTypeSummary.isStatus( ImportStatus.ERROR ) ) + { + webMessage.setStatus( WebMessageStatus.ERROR ); + webMessage.setHttpStatusCode( HttpServletResponse.SC_CONFLICT ); + } + else if ( importTypeSummary.isStatus( ImportStatus.SUCCESS ) && !importTypeSummary.getConflicts().isEmpty() ) + { + webMessage.setStatus( WebMessageStatus.WARNING ); + webMessage.setHttpStatusCode( HttpServletResponse.SC_CONFLICT ); + } + else + { + webMessage.setStatus( WebMessageStatus.OK ); + webMessage.setHttpStatusCode( HttpServletResponse.SC_OK ); + } + + webMessage.setResponse( importTypeSummary ); + + return webMessage; + } + private WebMessageUtils() { }