=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2015-10-22 03:05:41 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2015-10-22 03:37:00 +0000 @@ -805,14 +805,38 @@ // ------------------------------------------------------------------------- @Override - public void deleteEvent( Event event ) + public ImportSummary deleteEvent( String uid ) { - ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( event.getEvent() ); + ProgramStageInstance programStageInstance = programStageInstanceService.getProgramStageInstance( uid ); if ( programStageInstance != null ) { programStageInstanceService.deleteProgramStageInstance( programStageInstance ); - } + return new ImportSummary( ImportStatus.SUCCESS, "Deletion of event " + uid + " was successful." ); + } + + return new ImportSummary( ImportStatus.ERROR, "ID " + uid + " does not point to a valid event" ); + } + + @Override + public ImportSummaries deleteEvents( List uids ) + { + ImportSummaries importSummaries = new ImportSummaries(); + int counter = 0; + + for ( String uid : uids ) + { + importSummaries.addImportSummary( deleteEvent( uid ) ); + + if ( counter % FLUSH_FREQUENCY == 0 ) + { + dbmsManager.clearSession(); + } + + counter++; + } + + return importSummaries; } // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/EventService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/EventService.java 2015-10-22 03:05:41 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/EventService.java 2015-10-22 03:37:00 +0000 @@ -28,11 +28,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.io.IOException; -import java.io.InputStream; -import java.util.Date; -import java.util.List; - import org.hisp.dhis.common.OrganisationUnitSelectionMode; import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.dxf2.common.IdSchemes; @@ -45,6 +40,11 @@ import org.hisp.dhis.program.ProgramStatus; import org.hisp.dhis.scheduling.TaskId; +import java.io.IOException; +import java.io.InputStream; +import java.util.Date; +import java.util.List; + /** * @author Morten Olav Hansen */ @@ -55,13 +55,13 @@ // ------------------------------------------------------------------------- Events getEvents( EventSearchParams params ); - + EventRows getEventRows( EventSearchParams params ); EventSearchParams getFromUrl( String program, String programStage, ProgramStatus programStatus, Boolean followUp, String orgUnit, - OrganisationUnitSelectionMode orgUnitSelectionMode, String trackedEntityInstance, Date startDate, Date endDate, + OrganisationUnitSelectionMode orgUnitSelectionMode, String trackedEntityInstance, Date startDate, Date endDate, EventStatus status, Date lastUpdated, DataElementCategoryOptionCombo attributeCoc, IdSchemes idSchemes, Integer page, Integer pageSize, boolean totalPages, boolean skipPaging, boolean includeAttributes ); - + Event getEvent( String uid ); Event getEvent( ProgramStageInstance programStageInstance ); @@ -102,5 +102,7 @@ // DELETE // ------------------------------------------------------------------------- - void deleteEvent( Event event ); + ImportSummary deleteEvent( String uid ); + + ImportSummaries deleteEvents( List uids ); } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EventController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EventController.java 2015-10-20 04:15:40 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/EventController.java 2015-10-22 03:37:00 +0000 @@ -53,6 +53,7 @@ import org.hisp.dhis.event.EventStatus; import org.hisp.dhis.importexport.ImportStrategy; import org.hisp.dhis.program.Program; +import org.hisp.dhis.program.ProgramStageInstanceService; import org.hisp.dhis.program.ProgramStatus; import org.hisp.dhis.scheduling.TaskCategory; import org.hisp.dhis.scheduling.TaskId; @@ -125,6 +126,9 @@ @Autowired private RenderService renderService; + @Autowired + private ProgramStageInstanceService programStageInstanceService; + // ------------------------------------------------------------------------- // READ // ------------------------------------------------------------------------- @@ -294,7 +298,7 @@ if ( event == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } if ( options.hasLinks() ) @@ -446,7 +450,7 @@ if ( event == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } Event updatedEvent = renderService.fromXml( request.getInputStream(), Event.class ); @@ -464,7 +468,7 @@ if ( event == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } Event updatedEvent = renderService.fromJson( request.getInputStream(), Event.class ); @@ -482,14 +486,14 @@ if ( event == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } DataElement dataElement = dataElementService.getDataElement( dataElementUid ); if ( dataElement == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "DataElement not found for uid: " + dataElementUid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "DataElement not found for ID " + dataElementUid ) ); } Event updatedEvent = renderService.fromJson( request.getInputStream(), Event.class ); @@ -507,7 +511,7 @@ if ( event == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } Event updatedEvent = renderService.fromJson( request.getInputStream(), Event.class ); @@ -525,14 +529,14 @@ if ( event == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } Event updatedEvent = renderService.fromJson( request.getInputStream(), Event.class ); updatedEvent.setEvent( uid ); eventService.updateEventForEventDate( updatedEvent ); - webMessageService.send( WebMessageUtils.ok( "Event updated: " + uid ), response, request ); + webMessageService.send( WebMessageUtils.ok( "Event updated " + uid ), response, request ); } // ------------------------------------------------------------------------- @@ -541,16 +545,15 @@ @RequestMapping( value = "/{uid}", method = RequestMethod.DELETE ) @PreAuthorize( "hasRole('ALL') or hasRole('F_TRACKED_ENTITY_DATAVALUE_DELETE')" ) - public void deleteEvent( HttpServletResponse response, @PathVariable( "uid" ) String uid ) throws WebMessageException + public void deleteEvent( HttpServletResponse response, HttpServletRequest request, @PathVariable( "uid" ) String uid ) throws WebMessageException { - Event event = eventService.getEvent( uid ); - - if ( event == null ) + if ( !programStageInstanceService.programStageInstanceExists( uid ) ) { - throw new WebMessageException( WebMessageUtils.notFound( "Event not found for uid: " + uid ) ); + throw new WebMessageException( WebMessageUtils.notFound( "Event not found for ID " + uid ) ); } - response.setStatus( HttpServletResponse.SC_NO_CONTENT ); - eventService.deleteEvent( event ); + response.setStatus( HttpServletResponse.SC_OK ); + ImportSummary importSummary = eventService.deleteEvent( uid ); + webMessageService.send( WebMessageUtils.importSummary( importSummary ), response, request ); } } \ No newline at end of file