antes de agregar el id

This commit is contained in:
Felipe
2024-04-07 18:03:51 -05:00
parent bfe782e47e
commit 60547febb6
10 changed files with 751 additions and 19 deletions
+71 -2
View File
@@ -29,7 +29,10 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
on<LoadService>(_onLoadService);
on<UpdateServiceStatus>(_onUpdateServiceStatus);
on<LoadServicesForUser>(_onLoadServicesForUser);
on<LoadServicesForProfessional>(_onLoadServicesForProfessional);
on<LoadServicesHistoryForUser>(_onLoadServicesHistoryForUser);
on<LoadServicesHistoryForProfessional>(
_onLoadServicesHistoryForProfessional);
}
void _onCreateService(CreateService event, Emitter<ServiceState> emit) async {
@@ -115,6 +118,39 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
}
}
void _onLoadServicesHistoryForProfessional(
LoadServicesHistoryForProfessional event,
Emitter<ServiceState> emit) async {
try {
final servicesStream =
_serviceRepository.getServicesHistoryForProfessional(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 _onLoadServicesForUser(
LoadServicesForUser event, Emitter<ServiceState> emit) async {
try {
@@ -154,6 +190,39 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
}
}
void _onLoadServicesForProfessional(
LoadServicesForProfessional event, Emitter<ServiceState> emit) async {
try {
final servicesStream =
_serviceRepository.getServicesForProfessional(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 {
@@ -171,11 +240,11 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
class ServiceInfoUI {
final ServiceEntity service;
final MyUser user;
final ProfessionalEntity professional;
final ProfessionalEntity? professional;
ServiceInfoUI({
required this.service,
required this.user,
required this.professional,
this.professional,
});
}
+18
View File
@@ -35,6 +35,24 @@ class LoadServicesForUser extends ServiceEvent {
List<Object> get props => [userId];
}
class LoadServicesForProfessional extends ServiceEvent {
final String userId;
const LoadServicesForProfessional(this.userId);
@override
List<Object> get props => [userId];
}
class LoadServicesHistoryForProfessional extends ServiceEvent {
final String userId;
const LoadServicesHistoryForProfessional(this.userId);
@override
List<Object> get props => [userId];
}
class LoadServicesHistoryForUser extends ServiceEvent {
final String userId;