TasksBloc constructor
Implementation
TasksBloc({
required this.getTasksUseCase,
required this.updateTaskUseCase,
required this.deleteTaskUseCase,
}) : super(TasksInitial()) {
on<FetchTasksEvent>((event, emit) async {
emit(TasksLoading());
final result =
await getTasksUseCase.call(TasksParams(event.projectId ?? ''));
result.fold(
(failure) => emit(TasksError(failure.message)),
(tasks) {
emit(TasksLoaded(tasks, sectionResult));
},
);
});
on<UpdateFetchTasksEvent>((event, emit) async {
final result =
await getTasksUseCase.call(TasksParams(event.projectId ?? ''));
result.fold(
(failure) => emit(TasksError(failure.message)),
(tasks) => emit(TasksLoaded(tasks, sectionResult)),
);
});
on<UpdateTaskEvent>((event, emit) async {
int tempDuration = event.task.duration == null || event.task.duration == 0
? 1
: event.task.duration! ~/ 60;
event.task.duration = tempDuration == 0 ? 1 : tempDuration;
final result = await updateTaskUseCase.call(UpdateTaskParams(
id: event.taskId ?? '',
taskData: event.task,
));
result.fold(
(failure) => emit(TasksError(failure.message)),
(task) {
add(UpdateFetchTasksEvent(event.task.projectId));
},
);
});
on<DeleteEvent>((event, emit) async {
final result = await deleteTaskUseCase.call(event.taskId ?? '');
result.fold(
(failure) => emit(TasksError(failure.message)),
(task) {
add(UpdateFetchTasksEvent(event.projectId));
},
);
});
}