Aidra Driver 1.3.5+68
Aidra Driver - Your path to green energy
Loading...
Searching...
No Matches
period_bloc.dart
Go to the documentation of this file.
1import 'package:flutter_bloc/flutter_bloc.dart';
2
3import '../../../../../core/services/service_locator.dart';
4import '../../../domain/usecases/get_collection_statistics_usecase.dart';
5import 'period_event.dart';
6import 'period_state.dart';
7
8class PeriodBloc extends Bloc<PeriodEvent, PeriodState> {
10
11 PeriodBloc() : super(const PeriodInitial()) {
12 on<SelectPeriodEvent>(_onSelectPeriod);
13 on<GetCollectionStatisticsEvent>(_onGetCollectionStatistics);
14 on<GetTodayStatisticsEvent>(_onGetTodayStatistics);
15 }
16
17 void _onSelectPeriod(SelectPeriodEvent event, Emitter<PeriodState> emit) {
18 emit(PeriodLoading());
19 }
20
23 Emitter<PeriodState> emit,
24 ) async {
25 emit(PeriodLoading());
26
27 final result = await getCollectionStatisticsUseCase(
29 userId: event.userId,
30 period: event.period,
31 ),
32 );
33
34 result.fold(
35 (failure) => emit(PeriodError(
36 message: failure.toString(),
37 )),
38 (statistics) => emit(PeriodLoaded(
40 )),
41 );
42 }
43
45 GetTodayStatisticsEvent event,
46 Emitter<PeriodState> emit,
47 ) async {
48 emit(TodayStatisticsLoading());
49
50 final result = await getCollectionStatisticsUseCase(
52 userId: event.userId,
53 period: 'today',
54 ),
55 );
56
57 result.fold(
58 (failure) => emit(TodayStatisticsError(
59 message: failure.toString(),
60 )),
63 )),
64 );
65 }
66}
sealed class AuthenticationState extends Equatable failure
sealed class CheckInOutEvent extends Equatable userId
void _onSelectPeriod(SelectPeriodEvent event, Emitter< PeriodState > emit)
final GetCollectionStatisticsUseCase getCollectionStatisticsUseCase
Future< void > _onGetTodayStatistics(GetTodayStatisticsEvent event, Emitter< PeriodState > emit,) async
Future< void > _onGetCollectionStatistics(GetCollectionStatisticsEvent event, Emitter< PeriodState > emit,) async
final String message
Definition failures.dart:0
GetCollectionStatisticsUseCase(this.repository)
const SelectPeriodEvent({required this.period})
const GetCollectionStatisticsEvent({ required this.userId, required this.period, })
abstract class PeriodEvent extends Equatable period
abstract class PeriodState extends Equatable PeriodInitial()
const PeriodLoaded({ required this.statistics, })
const TodayStatisticsLoaded({ required this.statistics, })
const PeriodError({ required this.message, })
class PeriodLoading extends PeriodState statistics
final sl