Commit f711c588 by Antonio Rueda

Código de mapeado de DTOs agrupado en servicio

parent 744fb747
...@@ -13,10 +13,11 @@ import org.springframework.scheduling.annotation.EnableScheduling; ...@@ -13,10 +13,11 @@ import org.springframework.scheduling.annotation.EnableScheduling;
*/ */
@SpringBootApplication(scanBasePackages={ @SpringBootApplication(scanBasePackages={
"es.ujaen.dae.reservahoteles.servicios", "es.ujaen.dae.reservahoteles.servicios",
"es.ujaen.dae.reservahoteles.repositorios" "es.ujaen.dae.reservahoteles.repositorios",
"es.ujaen.dae.reservahoteles.rest.dto"
}) })
@EntityScan(basePackages="es.ujaen.dae.reservahoteles.entidades") @EntityScan(basePackages="es.ujaen.dae.reservahoteles.entidades")
//@EnableScheduling @EnableScheduling
@EnableCaching @EnableCaching
public class ReservaHoteles { public class ReservaHoteles {
public static void main(String[] args) { public static void main(String[] args) {
......
package es.ujaen.dae.reservahoteles.rest; package es.ujaen.dae.reservahoteles.rest;
import es.ujaen.dae.reservahoteles.entidades.Hotel; import es.ujaen.dae.reservahoteles.rest.dto.Mapeador;
import es.ujaen.dae.reservahoteles.entidades.Reserva;
import es.ujaen.dae.reservahoteles.entidades.Usuario;
import es.ujaen.dae.reservahoteles.excepciones.UsuarioNoRegistrado;
import es.ujaen.dae.reservahoteles.repositorios.RepositorioUsuarios;
import es.ujaen.dae.reservahoteles.rest.dto.DHotel;
import es.ujaen.dae.reservahoteles.rest.dto.DReserva;
import es.ujaen.dae.reservahoteles.rest.dto.DUsuario;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -19,63 +12,6 @@ import org.springframework.stereotype.Service; ...@@ -19,63 +12,6 @@ import org.springframework.stereotype.Service;
@Service @Service
public class ControladorReservas { public class ControladorReservas {
@Autowired @Autowired
RepositorioUsuarios repositorioUsuarios; Mapeador mapeador;
static DUsuario dtoUsuario(Usuario usuario) {
// Nunca extraemos la clave de la entidad
return new DUsuario(usuario.nombre(), usuario.direccion(), usuario.tlf(), usuario.email(), "");
}
static Usuario usuario(DUsuario dUsuario) {
return new Usuario(dUsuario.nombre(), dUsuario.direccion(), dUsuario.tlf(), dUsuario.email(), dUsuario.clave());
}
static DHotel dtoHotel(Hotel hotel) {
return new DHotel(
hotel.id(),
hotel.nombre(),
hotel.localidad(),
hotel.provincia(),
hotel.cp(),
hotel.numHabSimple(),
hotel.numHabDoble(),
hotel.precioHabSimple(),
hotel.precioHabDoble());
}
static Hotel hotel(DHotel dHotel) {
return new Hotel(
dHotel.id(),
dHotel.nombre(),
dHotel.localidad(),
dHotel.provincia(),
dHotel.cp(),
dHotel.numHabSimple(),
dHotel.numHabDoble(),
dHotel.precioHabSimple(),
dHotel.precioHabDoble());
}
static DReserva dtoReserva(Reserva reserva) {
return new DReserva(
reserva.num(),
reserva.fechaInicio(),
reserva.fechaFin(),
reserva.numHabSimple(),
reserva.numHabDoble(),
reserva.cliente().email());
}
Reserva reserva(DReserva dReserva) {
Usuario usuario = repositorioUsuarios.buscar(dReserva.emailUsuario())
.orElseThrow(UsuarioNoRegistrado::new);
return new Reserva(
dReserva.num(),
usuario,
dReserva.fechaInicio(),
dReserva.fechaFin(),
dReserva.numHabSimple(),
dReserva.numHabDoble());
}
} }
package es.ujaen.dae.reservahoteles.rest.dto;
import es.ujaen.dae.reservahoteles.entidades.Hotel;
import es.ujaen.dae.reservahoteles.entidades.Reserva;
import es.ujaen.dae.reservahoteles.entidades.Usuario;
import es.ujaen.dae.reservahoteles.excepciones.UsuarioNoRegistrado;
import es.ujaen.dae.reservahoteles.repositorios.RepositorioUsuarios;
import es.ujaen.dae.reservahoteles.rest.dto.DHotel;
import es.ujaen.dae.reservahoteles.rest.dto.DReserva;
import es.ujaen.dae.reservahoteles.rest.dto.DUsuario;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
*
* @author ajrueda
*/
@Service
public class Mapeador {
@Autowired
RepositorioUsuarios repositorioUsuarios;
DUsuario dto(Usuario usuario) {
// Nunca extraemos la clave de la entidad
return new DUsuario(usuario.nombre(), usuario.direccion(), usuario.tlf(), usuario.email(), "");
}
Usuario entidad(DUsuario dUsuario) {
return new Usuario(dUsuario.nombre(), dUsuario.direccion(), dUsuario.tlf(), dUsuario.email(), dUsuario.clave());
}
DHotel dto(Hotel hotel) {
return new DHotel(
hotel.id(),
hotel.nombre(),
hotel.localidad(),
hotel.provincia(),
hotel.cp(),
hotel.numHabSimple(),
hotel.numHabDoble(),
hotel.precioHabSimple(),
hotel.precioHabDoble());
}
Hotel entidad(DHotel dHotel) {
return new Hotel(
dHotel.id(),
dHotel.nombre(),
dHotel.localidad(),
dHotel.provincia(),
dHotel.cp(),
dHotel.numHabSimple(),
dHotel.numHabDoble(),
dHotel.precioHabSimple(),
dHotel.precioHabDoble());
}
static DReserva dto(Reserva reserva) {
return new DReserva(
reserva.num(),
reserva.fechaInicio(),
reserva.fechaFin(),
reserva.numHabSimple(),
reserva.numHabDoble(),
reserva.cliente().email());
}
Reserva entidad(DReserva dReserva) {
Usuario usuario = repositorioUsuarios.buscar(dReserva.emailUsuario())
.orElseThrow(UsuarioNoRegistrado::new);
return new Reserva(
dReserva.num(),
usuario,
dReserva.fechaInicio(),
dReserva.fechaFin(),
dReserva.numHabSimple(),
dReserva.numHabDoble());
}
}
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