Commit a88d62b9 by Antonio Rueda

Eliminación de operaciones verCliente() y verTarjetas, accesibles desde el propio cliente

parent 7b02c593
...@@ -112,7 +112,10 @@ public class ControladorREST { ...@@ -112,7 +112,10 @@ public class ControladorREST {
@GetMapping("/clientes/{dni}/tarjetas") @GetMapping("/clientes/{dni}/tarjetas")
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.OK)
List<DTOTarjeta> verTarjetas(@PathVariable String dni) { List<DTOTarjeta> verTarjetas(@PathVariable String dni) {
return servicios.verTarjetas(dni).stream() return servicios.verCliente(dni)
.orElseThrow(ClienteNoRegistrado::new)
.verTarjetas()
.stream()
.map(t -> new DTOTarjeta(t)).toList(); .map(t -> new DTOTarjeta(t)).toList();
} }
...@@ -121,7 +124,10 @@ public class ControladorREST { ...@@ -121,7 +124,10 @@ public class ControladorREST {
*/ */
@GetMapping("/clientes/{dni}/tarjetas/{num}") @GetMapping("/clientes/{dni}/tarjetas/{num}")
ResponseEntity<DTOTarjeta> verTarjeta(@PathVariable String dni, @PathVariable String num) { ResponseEntity<DTOTarjeta> verTarjeta(@PathVariable String dni, @PathVariable String num) {
return servicios.verTarjetas(dni).stream() return servicios.verCliente(dni)
.orElseThrow(ClienteNoRegistrado::new)
.verTarjetas()
.stream()
.filter(t -> t.getNum().equals(num)) .filter(t -> t.getNum().equals(num))
.findFirst() .findFirst()
.map(t -> ResponseEntity.ok(new DTOTarjeta(t))) .map(t -> ResponseEntity.ok(new DTOTarjeta(t)))
...@@ -143,7 +149,10 @@ public class ControladorREST { ...@@ -143,7 +149,10 @@ public class ControladorREST {
@GetMapping("/clientes/{dni}/cuentas") @GetMapping("/clientes/{dni}/cuentas")
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.OK)
List<DTOCuenta> verCuentas(@PathVariable String dni) { List<DTOCuenta> verCuentas(@PathVariable String dni) {
return servicios.verCuentas(dni).stream() return servicios.verCliente(dni)
.orElseThrow(ClienteNoRegistrado::new)
.verCuentas()
.stream()
.map(c -> new DTOCuenta(c)).toList(); .map(c -> new DTOCuenta(c)).toList();
} }
...@@ -152,7 +161,10 @@ public class ControladorREST { ...@@ -152,7 +161,10 @@ public class ControladorREST {
*/ */
@GetMapping("/clientes/{dni}/cuentas/{num}") @GetMapping("/clientes/{dni}/cuentas/{num}")
ResponseEntity<DTOCuenta> verCuenta(@PathVariable String dni, @PathVariable String num) { ResponseEntity<DTOCuenta> verCuenta(@PathVariable String dni, @PathVariable String num) {
return servicios.verCuentas(dni).stream() return servicios.verCliente(dni)
.orElseThrow(ClienteNoRegistrado::new)
.verCuentas()
.stream()
.filter(c -> c.getNum().equals(num)) .filter(c -> c.getNum().equals(num))
.findFirst() .findFirst()
.map(c -> ResponseEntity.ok(new DTOCuenta(c))) .map(c -> ResponseEntity.ok(new DTOCuenta(c)))
......
...@@ -130,31 +130,7 @@ public class ServicioUjaCoin { ...@@ -130,31 +130,7 @@ public class ServicioUjaCoin {
cliente.nuevaTarjeta(tarjeta); cliente.nuevaTarjeta(tarjeta);
repositorioClientes.actualizar(cliente); repositorioClientes.actualizar(cliente);
} }
/**
* Devolver las cuentas de un cliente dado
* No es una operación imprescindible puesto que el cliente ya
* tiene la lista de cuentas
* @param dni el DNI del cliente
* @return la lista de cuentas
*/
public List<Cuenta> verCuentas(@NotBlank String dni) {
Cliente cliente = repositorioClientes.buscar(dni).orElseThrow(ClienteNoRegistrado::new);
return cliente.verCuentas();
}
/**
* Devolver las tarjetas registradas por el usuario. No es una operación
* realmente necesaria puesto que el cliente ya contiene esta lista
* @param dni el DNI del cliente
* @return la lista de tarjetas
*/
public List<Tarjeta> verTarjetas(@NotBlank String dni) {
Cliente cliente = repositorioClientes.buscar(dni).orElseThrow(ClienteNoRegistrado::new);
return cliente.verTarjetas(); // Relación eager, no hay que hacer nada
}
/** /**
* Realizar un ingreso en cuenta a partir de una tarjeta * Realizar un ingreso en cuenta a partir de una tarjeta
* @param numCuenta el número de la cuenta donde se ingresa el dinero * @param numCuenta el número de la cuenta donde se ingresa el dinero
......
...@@ -149,9 +149,11 @@ public class ServicioUjaCoinTest { ...@@ -149,9 +149,11 @@ public class ServicioUjaCoinTest {
Tarjeta tarjeta = new Tarjeta("4111111111111111", cliente.getNombre(), LocalDate.of(2030, 12, 1), "365"); Tarjeta tarjeta = new Tarjeta("4111111111111111", cliente.getNombre(), LocalDate.of(2030, 12, 1), "365");
servicioUjaCoin.registrarTarjeta(clienteLogin.getDni(), tarjeta); servicioUjaCoin.registrarTarjeta(clienteLogin.getDni(), tarjeta);
clienteLogin.nuevaTarjeta(tarjeta); clienteLogin.nuevaTarjeta(tarjeta);
clienteLogin = null;
// Obtener cuenta // Obtener cuenta
List<Cuenta> cuentas = servicioUjaCoin.verCuentas(clienteLogin.getDni()); clienteLogin = servicioUjaCoin.loginCliente(cliente.getDni(), "clave").get();
List<Cuenta> cuentas = clienteLogin.verCuentas();
Assertions.assertThat(cuentas).hasSize(1); Assertions.assertThat(cuentas).hasSize(1);
// Realizar ingreso y comprobar estado de la cuenta // Realizar ingreso y comprobar estado de la cuenta
...@@ -203,8 +205,8 @@ public class ServicioUjaCoinTest { ...@@ -203,8 +205,8 @@ public class ServicioUjaCoinTest {
servicioUjaCoin.transferencia(cuentaOrigen.getNum(), cuentaDestino.getNum(), 500); servicioUjaCoin.transferencia(cuentaOrigen.getNum(), cuentaDestino.getNum(), 500);
// Refrescar cuenta origen y destino // Refrescar cuenta origen y destino
cuentaOrigen = servicioUjaCoin.verCuentas(cliente.getDni()).get(0); cuentaOrigen = servicioUjaCoin.loginCliente(cliente.getDni(), "claveyyy").get().verCuentas().get(0);
cuentaDestino = servicioUjaCoin.verCuentas(cliente2.getDni()).get(0); cuentaDestino = servicioUjaCoin.loginCliente(cliente2.getDni(), "clavezzz").get().verCuentas().get(0);
// Listar movimientos de la cuenta origen // Listar movimientos de la cuenta origen
List<Movimiento> movimientos = servicioUjaCoin.listarMovimientosCuentaDesde(cuentaOrigen.getNum(), LocalDateTime.now().minusDays(1)); List<Movimiento> movimientos = servicioUjaCoin.listarMovimientosCuentaDesde(cuentaOrigen.getNum(), LocalDateTime.now().minusDays(1));
......
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