diff --git a/GAE/src/org/akvo/flow/rest/SurveyAssignmentRestService.java b/GAE/src/org/akvo/flow/rest/SurveyAssignmentRestService.java index a37726564e..0b0e3be572 100644 --- a/GAE/src/org/akvo/flow/rest/SurveyAssignmentRestService.java +++ b/GAE/src/org/akvo/flow/rest/SurveyAssignmentRestService.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012,2017,2019 Stichting Akvo (Akvo Foundation) + * Copyright (C) 2012,2017,2019,2020 Stichting Akvo (Akvo Foundation) * * This file is part of Akvo FLOW. * @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; +import org.akvo.flow.dao.DataPointAssignmentDao; import org.akvo.flow.dao.SurveyAssignmentDao; import org.akvo.flow.domain.persistent.DataPointAssignment; import org.akvo.flow.domain.persistent.SurveyAssignment; @@ -59,6 +60,8 @@ public class SurveyAssignmentRestService { private DeviceSurveyJobQueueDAO deviceSurveyJobQueueDAO = new DeviceSurveyJobQueueDAO(); + private DataPointAssignmentDao dataPointAssignmentDao = new DataPointAssignmentDao(); + @RequestMapping(method = RequestMethod.GET, value = "") @ResponseBody public Map> listAll() { @@ -99,6 +102,7 @@ public Map deleteById(@PathVariable("id") statusDto.setStatus("failed"); if (sa != null) { deleteExistingDeviceSurveyJobQueueItems(sa); + deleteExistingDatapointAssignments(sa); surveyAssignmentDao.delete(sa); statusDto.setStatus("ok"); } @@ -199,6 +203,11 @@ private void deleteExistingDeviceSurveyJobQueueItems(SurveyAssignment assignment deviceSurveyJobQueueDAO.delete(deviceAssignmentsToDelete); } + private void deleteExistingDatapointAssignments(SurveyAssignment assignment) { + List dataPointAssignments = dataPointAssignmentDao.listBySurveyAssignment(assignment.getKey().getId()); + dataPointAssignmentDao.delete(dataPointAssignments); + } + /** * creates and saves DeviceSurveyJobQueue objects for each device/survey pair in the assignment. */