This commit is contained in:
Felipe
2024-04-05 11:56:45 -05:00
parent f46450e5db
commit e82c7c3afd
18 changed files with 1297 additions and 546 deletions
+33 -4
View File
@@ -17,10 +17,14 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
: _serviceRepository = serviceRepository,
super(CreateServiceInitial()) {
on<CreateService>(_onCreateService);
on<LoadService>(_onLoadService);
on<UpdateServiceStatus>(_onUpdateServiceStatus);
}
void _onCreateService(CreateService event, Emitter<ServiceState> emit) async {
try {
emit(CreateServiceLoading());
ServiceEntity service = ServiceEntity(
professionalId: event.professionalId,
professionalScored: false,
@@ -40,12 +44,37 @@ class ServiceBloc extends Bloc<ServiceEvent, ServiceState> {
location: event.location,
);
log('xd -- $service');
String serviceId = await _serviceRepository.createService(service);
await _serviceRepository.createService(service);
emit(const CreateServiceSuccess());
emit(CreateServiceSuccess(serviceId));
} catch (e) {
log(e.toString());
emit(CreateServiceFailure());
}
}
void _onLoadService(LoadService event, Emitter<ServiceState> emit) async {
try {
final serviceStream = _serviceRepository.getService(event.serviceId);
await for (var service in serviceStream) {
emit(ServiceLoaded(service));
}
} catch (e) {
log(e.toString());
emit(CreateServiceFailure());
}
}
void _onUpdateServiceStatus(
UpdateServiceStatus event, Emitter<ServiceState> emit) async {
try {
emit(CreateServiceLoading());
await _serviceRepository.updateServiceStatus(
event.serviceId, event.newStatus);
emit(ServiceStatusUpdated(event.newStatus));
} catch (e) {
log(e.toString());
emit(CreateServiceFailure());
}
}
+19
View File
@@ -7,6 +7,25 @@ abstract class ServiceEvent extends Equatable {
List<Object?> get props => [];
}
class LoadService extends ServiceEvent {
final String serviceId;
const LoadService(this.serviceId);
@override
List<Object?> get props => [serviceId];
}
class UpdateServiceStatus extends ServiceEvent {
final String serviceId;
final ServiceStatus newStatus;
const UpdateServiceStatus(this.serviceId, this.newStatus);
@override
List<Object> get props => [serviceId, newStatus];
}
class CreateService extends ServiceEvent {
final String professionalId;
final bool? professionalScored;
+22 -2
View File
@@ -7,6 +7,15 @@ abstract class ServiceState extends Equatable {
List<Object> get props => [];
}
class ServiceLoaded extends ServiceState {
final ServiceEntity service;
const ServiceLoaded(this.service);
@override
List<Object> get props => [service];
}
class CreateServiceInitial extends ServiceState {}
class CreateServiceFailure extends ServiceState {}
@@ -14,8 +23,19 @@ class CreateServiceFailure extends ServiceState {}
class CreateServiceLoading extends ServiceState {}
class CreateServiceSuccess extends ServiceState {
const CreateServiceSuccess();
final String serviceId;
const CreateServiceSuccess(this.serviceId);
@override
List<Object> get props => [];
List<Object> get props => [serviceId];
}
class ServiceStatusUpdated extends ServiceState {
final ServiceStatus newStatus;
const ServiceStatusUpdated(this.newStatus);
@override
List<Object> get props => [newStatus];
}