39 lines
1.2 KiB
Dart
39 lines
1.2 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:aitrainer_app/repository/customer_repository.dart';
|
|
import 'package:bloc/bloc.dart';
|
|
import 'package:equatable/equatable.dart';
|
|
import 'package:meta/meta.dart';
|
|
|
|
part 'customer_change_event.dart';
|
|
part 'customer_change_state.dart';
|
|
|
|
class CustomerChangeBloc extends Bloc<CustomerChangeEvent, CustomerChangeState> {
|
|
final CustomerRepository customerRepository;
|
|
CustomerChangeBloc({this.customerRepository}) : super(CustomerChangeInitial());
|
|
|
|
@override
|
|
Stream<CustomerChangeState> mapEventToState(
|
|
CustomerChangeEvent event,
|
|
) async* {
|
|
try {
|
|
if (event is CustomerGoalChange) {
|
|
customerRepository.setGoal(event.goal);
|
|
yield CustomerDataChanged();
|
|
} else if (event is CustomerFitnessChange) {
|
|
customerRepository.setFitnessLevel(event.fitness);
|
|
yield CustomerDataChanged();
|
|
} else if (event is CustomerBodyTypeChange) {
|
|
customerRepository.setBodyType(event.bodyType);
|
|
yield CustomerDataChanged();
|
|
} else if (event is CustomerSave) {
|
|
yield CustomerSaving();
|
|
await customerRepository.saveCustomer();
|
|
yield CustomerSaveSuccess();
|
|
}
|
|
} on Exception catch(e) {
|
|
yield CustomerSaveError(message: e.toString());
|
|
}
|
|
}
|
|
}
|