@PreAuthorize("hasRole('" + StandardEntitlement.TASK_DELETE + "')")
@Override
public List<BatchResponseItem> deleteExecutions(
final String key,
final Date startedBefore,
final Date startedAfter,
final Date endedBefore,
final Date endedAfter) {
Task task = taskDAO.find(key);
if (task == null) {
throw new NotFoundException("Task " + key);
}
List<BatchResponseItem> batchResponseItems = new ArrayList<>();
taskExecDAO.findAll(task, startedBefore, startedAfter, endedBefore, endedAfter).forEach(exec -> {
BatchResponseItem item = new BatchResponseItem();
item.getHeaders().put(RESTHeaders.RESOURCE_KEY, Arrays.asList(exec.getKey()));
batchResponseItems.add(item);
try {
taskExecDAO.delete(exec);
item.setStatus(Response.Status.OK.getStatusCode());
} catch (Exception e) {
LOG.error("Error deleting execution {} of task {}", exec.getKey(), key, e);
item.setStatus(Response.Status.BAD_REQUEST.getStatusCode());
item.setContent(ExceptionUtils2.getFullStackTrace(e));
}
});
return batchResponseItems;
}