This commit is contained in:
Felipe
2024-04-18 15:51:23 -05:00
parent 631b8c5801
commit 8084d5fc7f
15 changed files with 364 additions and 56 deletions
+50 -1
View File
@@ -33,7 +33,10 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
on<LoadServicesHistoryForUser>(_onLoadServicesHistoryForUser);
on<LoadServicesHistoryForProfessional>(
_onLoadServicesHistoryForProfessional);
on<LoadPendingServicesForProfessional>(
_onLoadPendingServicesForProfessional);
on<UpdateProfessionalScored>(_onUpdateProfessionalScored);
on<UpdateUserScored>(_onUpdateUserScored);
}
void _onCreateService(CreateService event, Emitter<ServiceState> emit) async {
@@ -224,6 +227,40 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
}
}
void _onLoadPendingServicesForProfessional(
LoadPendingServicesForProfessional event,
Emitter<ServiceState> emit) async {
try {
final servicesStream =
_serviceRepository.getPendingServicesForProfessional(event.userId);
await for (var services in servicesStream) {
if (services.isEmpty) {
emit(const ServicesForUserLoaded([]));
return;
}
final userIds = services.map((e) => e.userId);
final List<MyUser> users =
await _userRepository.getUsersFromIds(userIds);
final usersDir = {for (var e in users) e.id: e};
final servicesInfo = services.map((e) {
return ServiceInfoUI(
service: e,
user: usersDir[e.userId]!,
);
}).toList();
emit(ServicesForUserLoaded(servicesInfo));
}
} catch (e) {
log(e.toString());
emit(CreateServiceFailure());
}
}
void _onUpdateServiceStatus(
UpdateServiceStatus event, Emitter<ServiceState> emit) async {
try {
@@ -242,7 +279,19 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
try {
emit(CreateServiceLoading());
await _serviceRepository.setProfessionalScored(event.serviceId);
emit(ProfessionalScoredUpdated());
emit(ScoredUpdated());
} catch (e) {
log(e.toString());
emit(CreateServiceFailure());
}
}
void _onUpdateUserScored(
UpdateUserScored event, Emitter<ServiceState> emit) async {
try {
emit(CreateServiceLoading());
await _serviceRepository.setUserScored(event.serviceId);
emit(ScoredUpdated());
} catch (e) {
log(e.toString());
emit(CreateServiceFailure());
+18
View File
@@ -35,6 +35,15 @@ class LoadServicesForUser extends ServiceEvent {
List<Object> get props => [userId];
}
class LoadPendingServicesForProfessional extends ServiceEvent {
final String userId;
const LoadPendingServicesForProfessional(this.userId);
@override
List<Object> get props => [userId];
}
class LoadServicesForProfessional extends ServiceEvent {
final String userId;
@@ -80,6 +89,15 @@ class UpdateProfessionalScored extends ServiceEvent {
List<Object> get props => [serviceId];
}
class UpdateUserScored extends ServiceEvent {
final String serviceId;
const UpdateUserScored(this.serviceId);
@override
List<Object> get props => [serviceId];
}
class CreateService extends ServiceEvent {
final String professionalId;
final bool? professionalScored;
+1 -1
View File
@@ -49,4 +49,4 @@ class ServiceStatusUpdated extends ServiceState {
List<Object> get props => [newStatus];
}
class ProfessionalScoredUpdated extends ServiceState {}
class ScoredUpdated extends ServiceState {}