You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.3KB

  1. import 'package:bloc/bloc.dart';
  2. import 'package:equatable/equatable.dart';
  3. import 'package:get/get.dart';
  4. import '../../../../data/api/app_exception.dart';
  5. import '../../../../data/repository/repository.dart';
  6. import '../../../../utils/utils.dart';
  7. import '../../../custom_widgets/widget_utils.dart';
  8. import '../models/task.dart';
  9. import '../models/task_update_request.dart';
  10. part 'task_detail_state.dart';
  11. class TaskDetailCubit extends Cubit<TaskDetailState> {
  12. final repository = Repository();
  13. TaskDetailCubit() : super(TaskDetailInitial());
  14. Future<void> preparedData(int taskId) async {
  15. try {
  16. await Future.delayed(const Duration(seconds: 0));
  17. emit(TaskDetailLoading());
  18. var task = await repository.getTaskDetail(id: taskId);
  19. emit(TaskDetailSuccessful(task));
  20. } catch (e) {
  21. emit(TaskDetailFailure(AppException.handleError(e)));
  22. }
  23. }
  24. Future<void> updateStatusTask(
  25. RequestTaskUpdate task,
  26. ) async {
  27. print(task.toJson());
  28. UtilWidget.showLoading();
  29. await repository.updateTask(
  30. (success) {
  31. UtilWidget.hideDialog();
  32. Get.back(result: 'ok');
  33. // Utils.showSnackBarSuccess();
  34. },
  35. (errorMessage) {
  36. UtilWidget.hideDialog();
  37. Utils.showSnackBarError();
  38. },
  39. item: task,
  40. );
  41. }
  42. }