Commit 78dbe318 by María Hidalgo

añadidas funciones obtenerSolicitudesPendientes y obtenerPasajeros

parent 57bb271c
package es.ujaen.dae.carpoolingdae.excepciones;
public class ViajeCancelado extends RuntimeException {
public ViajeCancelado() {
}
}
...@@ -8,6 +8,7 @@ import jakarta.validation.constraints.NotNull; ...@@ -8,6 +8,7 @@ import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -19,6 +20,8 @@ import es.ujaen.dae.carpoolingdae.entidades.Viaje; ...@@ -19,6 +20,8 @@ import es.ujaen.dae.carpoolingdae.entidades.Viaje;
import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje; import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje;
import es.ujaen.dae.carpoolingdae.excepciones.UsuarioNoRegistrado; import es.ujaen.dae.carpoolingdae.excepciones.UsuarioNoRegistrado;
import es.ujaen.dae.carpoolingdae.excepciones.UsuarioYaRegistrado; import es.ujaen.dae.carpoolingdae.excepciones.UsuarioYaRegistrado;
import es.ujaen.dae.carpoolingdae.excepciones.ViajeCancelado;
import es.ujaen.dae.carpoolingdae.excepciones.ViajeRealizado;
import es.ujaen.dae.carpoolingdae.repositorios.RepositorioUsuarios; import es.ujaen.dae.carpoolingdae.repositorios.RepositorioUsuarios;
import es.ujaen.dae.carpoolingdae.repositorios.RepositorioViajes; import es.ujaen.dae.carpoolingdae.repositorios.RepositorioViajes;
...@@ -112,6 +115,7 @@ public class SistemaCarpooling { ...@@ -112,6 +115,7 @@ public class SistemaCarpooling {
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
/** /**
* Enviar solicitud para ser pasajero de un viaje * Enviar solicitud para ser pasajero de un viaje
* *
...@@ -130,4 +134,36 @@ public class SistemaCarpooling { ...@@ -130,4 +134,36 @@ public class SistemaCarpooling {
repositorioViajes.actualizarViajes(viaje); repositorioViajes.actualizarViajes(viaje);
} }
/**
* Obtener solicitudes pendientes de un viaje
*
* @param viaje el viaje del que se obtendrán las solicitudes
* @return lista de solicitudes pendientes del viaje
*/
public List<Usuario> obtenerSolicitudesPendientes(@NotNull Viaje viaje) {
// Verificar que el viaje esté en estado PENDIENTE
if (viaje.getEstado() != EstadoViaje.PENDIENTE) {
throw new ViajeRealizado();
}
// Obtener las solicitudes pendientes del viaje
return new ArrayList<>(viaje.getUsuariosSolicitantes());
}
/**
* Obtener pasajeros confirmados de un viaje
*
* @param viaje el viaje del que se obtendrán los pasajeros
* @return lista de pasajeros confirmados del viaje
*/
public List<Usuario> obtenerPasajeros(@NotNull Viaje viaje) {
//Podemos ver los pasajeros antes y después del viaje
if (viaje.getEstado() != EstadoViaje.PENDIENTE || viaje.getEstado() != EstadoViaje.REALIZADO) {
throw new ViajeCancelado();
}
// Obtener los pasajeros confirmados del viaje
return new ArrayList<>(viaje.getUsuariosConfirmados());
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment