32 lines
1.2 KiB
Dart
32 lines
1.2 KiB
Dart
import '../../../../../api/marianumconnect/queries/get_ticker/get_ticker_response.dart';
|
|
import '../../../../../api/marianumconnect/queries/get_ticker_nav/get_ticker_nav_response.dart';
|
|
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc.dart';
|
|
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc_event.dart';
|
|
import '../repository/ticker_repository.dart';
|
|
import 'ticker_event.dart';
|
|
import 'ticker_state.dart';
|
|
|
|
class TickerBloc
|
|
extends LoadableHydratedBloc<TickerEvent, TickerState, TickerRepository> {
|
|
@override
|
|
Future<void> gatherData() async {
|
|
final results = await Future.wait([repo.getTicker(), repo.getNav()]);
|
|
final ticker = results[0] as TickerResponse;
|
|
final nav = results[1] as TickerNavResponse;
|
|
add(DataGathered((state) => state.copyWith(ticker: ticker, nav: nav)));
|
|
}
|
|
|
|
@override
|
|
TickerRepository repository() => TickerRepository();
|
|
|
|
@override
|
|
TickerState fromNothing() => const TickerState();
|
|
|
|
@override
|
|
TickerState fromStorage(Map<String, dynamic> json) =>
|
|
TickerState.fromJson(json);
|
|
|
|
@override
|
|
Map<String, dynamic>? toStorage(TickerState state) => state.toJson();
|
|
}
|