import 'dart:async'; import 'dart:convert' as convert; import 'dart:convert'; import 'package:bloc/bloc.dart'; import 'package:dio/dio.dart'; import 'package:equatable/equatable.dart'; import 'package:farm_tpf/custom_model/Nursery.dart'; import 'package:farm_tpf/data/api/app_exception.dart'; import 'package:farm_tpf/data/api/dio_provider.dart'; import 'package:farm_tpf/data/repository/repository.dart'; import 'package:farm_tpf/utils/const_common.dart'; import 'package:meta/meta.dart'; part 'action_detail_event.dart'; part 'action_detail_state.dart'; class ActionDetailBloc extends Bloc { final Repository repository; ActionDetailBloc({@required this.repository}) : super(ActionDetailInitial()); final dio = DioProvider.instance(); @override Stream mapEventToState( ActionDetailEvent event, ) async* { if (event is FetchData) { if (!event.isNeedFetchData) { yield ActionDetailInitial(); } else { try { yield ActionDetailLoading(); Response response = await dio.get( "${ConstCommon.baseUrl}/api/activity-nursery/${event.activityId}"); final jsonData = json.decode(response.data); yield ActionDetailSuccess(item: jsonData); } catch (error) { yield ActionDetailFailure( errorString: AppException.handleError(error)); } } } } }