Created
September 1, 2020 07:57
-
-
Save magicleon94/39642bf637e12c6770f264ba71d8c041 to your computer and use it in GitHub Desktop.
Regional report bloc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:corona_italy/common/closable_bloc.dart'; | |
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_event.dart'; | |
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_state.dart'; | |
import 'package:corona_italy/features/infection_report/model/regional/regional_report_request.dart'; | |
import 'package:corona_italy/features/infection_report/model/regional/regional_report_vm.dart'; | |
import 'package:corona_italy/features/infection_report/service/infections_report_service.dart'; | |
class RegionalReportBloc | |
extends ClosableBloc<RegionalReportBlocEvent, RegionalReportState> { | |
final InfectionsReportService service; | |
RegionalReportBloc(this.service, {RegionalReportState initialState}) | |
: super(initialState ?? RegionalReportIdle()); | |
@override | |
Stream<RegionalReportState> mapEventToState( | |
RegionalReportBlocEvent event) async* { | |
switch (event.runtimeType) { | |
case RegionalReportFetch: | |
try { | |
yield RegionalReportLoading(); | |
final model = await _fetchRegionalReport(); | |
yield RegionalReportLoaded(model); | |
} catch (e) { | |
yield RegionalReportLoadingError(e.toString()); | |
} | |
break; | |
default: | |
throw UnsupportedError('Event not supported'); | |
break; | |
} | |
} | |
Future<RegionalReportsVm> _fetchRegionalReport() async { | |
final response = await service.getRegionalReport(RegionalReportRequest()); | |
final model = RegionalReportsVm.fromDto(response); | |
return model; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment