TaskDeleteSelectedService.java
package fr.tiogars.chat.domains.task.services;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import fr.tiogars.chat.common.models.DeleteSelectedResponse;
import fr.tiogars.chat.common.services.DeleteSelectedSupport;
/**
* Soft-deletes a selection of Tasks in a single transaction.
*
* @since 0.1.0
*/
@Service
public class TaskDeleteSelectedService {
private final TaskDeleteService deleteService;
/**
* Creates the bulk deletion service.
*
* @param deleteService single Task deletion service
*/
public TaskDeleteSelectedService(TaskDeleteService deleteService) {
this.deleteService = deleteService;
}
/**
* Soft-deletes the selected Tasks.
*
* @param ids selected Task identifiers
* @return deleted and skipped identifiers
*/
@Transactional
public DeleteSelectedResponse deleteSelected(List<Long> ids) {
return DeleteSelectedSupport.deleteEach(ids, deleteService::delete);
}
}