Files
prosappco/lib/blocs/professional_profile_bloc/professional_profile_bloc.dart
T
2024-04-03 10:58:46 -05:00

55 lines
1.8 KiB
Dart

import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:professional_repository/professional_repository.dart';
part 'professional_profile_event.dart';
part 'professional_profile_state.dart';
class ProfessionalProfileBloc
extends Bloc<ProfessionalProfileEvent, ProfessionalProfileState> {
final FirebaseProfessionalRepository _professionalRepository;
ProfessionalProfileBloc(
{required FirebaseProfessionalRepository professionalRepository})
: _professionalRepository = professionalRepository,
super((UpdateProfessionalInfoInitial())) {
on<UpdateProfessionalBannerInfo>(_onUpdateProfessionalBannerInfo);
on<UpdateProfessionalProfileInfo>(_onUpdateProfessionalProfileInfo);
}
void _onUpdateProfessionalBannerInfo(UpdateProfessionalBannerInfo event,
Emitter<ProfessionalProfileState> emit) async {
emit(UpdateProfessionalInfoLoading());
try {
event.fileBanner != null
? await _professionalRepository.uploadBannerPicture(event.fileBanner!)
: null;
emit(const UpdateProfessionalInfoSuccess());
} catch (e) {
emit(UpdateProfessionalInfoFailure());
}
}
void _onUpdateProfessionalProfileInfo(UpdateProfessionalProfileInfo event,
Emitter<ProfessionalProfileState> emit) async {
emit(UpdateProfessionalInfoLoading());
try {
await _professionalRepository.updateProfessionalInfo(
event.address,
event.aditionalAddress,
event.rate,
event.locationPreferences,
event.latitude,
event.longitude,
event.schedules,
event.paymentMethods,
);
emit(const UpdateProfessionalInfoSuccess());
} catch (e) {
emit(UpdateProfessionalInfoFailure());
}
}
}