Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Antonio Rueda
/
reserva-hoteles
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
744fb747
authored
Nov 20, 2024
by
Antonio Rueda
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Controlador y DTOs añadidos
parent
8537d747
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
162 additions
and
10 deletions
src/main/java/es/ujaen/dae/reservahoteles/entidades/Hotel.java
src/main/java/es/ujaen/dae/reservahoteles/entidades/Reserva.java
src/main/java/es/ujaen/dae/reservahoteles/excepciones/ClienteYaRegistrado.java → src/main/java/es/ujaen/dae/reservahoteles/excepciones/UsuarioNoRegistrado.java
src/main/java/es/ujaen/dae/reservahoteles/excepciones/UsuarioYaRegistrado.java
src/main/java/es/ujaen/dae/reservahoteles/repositorios/RepositorioUsuarios.java
src/main/java/es/ujaen/dae/reservahoteles/rest/ControladorReservas.java
src/main/java/es/ujaen/dae/reservahoteles/rest/dto/DHotel.java
src/main/java/es/ujaen/dae/reservahoteles/rest/dto/DReserva.java
src/main/java/es/ujaen/dae/reservahoteles/rest/dto/DUsuario.java
src/main/java/es/ujaen/dae/reservahoteles/servicios/ServicioReservas.java
src/main/java/es/ujaen/dae/reservahoteles/entidades/Hotel.java
View file @
744fb747
...
...
@@ -67,7 +67,8 @@ public class Hotel {
}
public
Hotel
(
String
nombre
,
String
localidad
,
String
provincia
,
String
cp
,
int
numHabSimple
,
int
numHabDoble
,
int
precioHabSimple
,
int
precioHabDoble
)
{
public
Hotel
(
int
id
,
String
nombre
,
String
localidad
,
String
provincia
,
String
cp
,
int
numHabSimple
,
int
numHabDoble
,
int
precioHabSimple
,
int
precioHabDoble
)
{
this
.
id
=
id
;
this
.
nombre
=
nombre
;
this
.
nombreSimp
=
normalizar
(
nombre
);
this
.
localidad
=
localidad
;
...
...
@@ -81,6 +82,10 @@ public class Hotel {
reservas
=
new
LinkedList
<>();
}
public
Hotel
(
String
nombre
,
String
localidad
,
String
provincia
,
String
cp
,
int
numHabSimple
,
int
numHabDoble
,
int
precioHabSimple
,
int
precioHabDoble
)
{
this
(
0
,
nombre
,
localidad
,
provincia
,
cp
,
numHabSimple
,
numHabDoble
,
precioHabSimple
,
precioHabDoble
);
}
/**
* Realza una reserva en el hotel
...
...
src/main/java/es/ujaen/dae/reservahoteles/entidades/Reserva.java
View file @
744fb747
...
...
@@ -7,7 +7,6 @@ import jakarta.persistence.GenerationType;
import
jakarta.persistence.Id
;
import
jakarta.persistence.ManyToOne
;
import
jakarta.validation.constraints.NotNull
;
import
jakarta.validation.constraints.Positive
;
import
jakarta.validation.constraints.PositiveOrZero
;
import
java.time.LocalDate
;
...
...
@@ -40,13 +39,21 @@ public class Reserva {
}
public
Reserva
(
Usuario
cliente
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
int
numHabSimple
,
int
numHabDoble
)
{
this
.
num
=
0
;
public
Reserva
(
int
num
,
Usuario
cliente
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
int
numHabSimple
,
int
numHabDoble
)
{
this
.
num
=
num
;
this
.
cliente
=
cliente
;
this
.
fechaInicio
=
fechaInicio
;
this
.
fechaFin
=
fechaFin
;
this
.
numHabSimple
=
numHabSimple
;
this
.
numHabDoble
=
numHabDoble
;
}
public
Reserva
(
Usuario
cliente
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
int
numHabSimple
,
int
numHabDoble
)
{
this
(
0
,
cliente
,
fechaInicio
,
fechaFin
,
numHabSimple
,
numHabDoble
);
}
public
int
num
()
{
return
num
;
}
public
LocalDate
fechaInicio
()
{
...
...
src/main/java/es/ujaen/dae/reservahoteles/excepciones/
ClienteYa
Registrado.java
→
src/main/java/es/ujaen/dae/reservahoteles/excepciones/
UsuarioNo
Registrado.java
View file @
744fb747
...
...
@@ -5,9 +5,9 @@ package es.ujaen.dae.reservahoteles.excepciones;
*
* @author ajrueda
*/
public
class
ClienteYa
Registrado
extends
RuntimeException
{
public
class
UsuarioNo
Registrado
extends
RuntimeException
{
public
ClienteYa
Registrado
()
{
public
UsuarioNo
Registrado
()
{
}
}
src/main/java/es/ujaen/dae/reservahoteles/excepciones/UsuarioYaRegistrado.java
0 → 100644
View file @
744fb747
package
es
.
ujaen
.
dae
.
reservahoteles
.
excepciones
;
/**
*
* @author ajrueda
*/
public
class
UsuarioYaRegistrado
extends
RuntimeException
{
public
UsuarioYaRegistrado
()
{
}
}
src/main/java/es/ujaen/dae/reservahoteles/repositorios/RepositorioUsuarios.java
View file @
744fb747
package
es
.
ujaen
.
dae
.
reservahoteles
.
repositorios
;
import
es.ujaen.dae.reservahoteles.entidades.Usuario
;
import
es.ujaen.dae.reservahoteles.excepciones.
Cliente
YaRegistrado
;
import
es.ujaen.dae.reservahoteles.excepciones.
Usuario
YaRegistrado
;
import
jakarta.persistence.EntityManager
;
import
jakarta.persistence.PersistenceContext
;
import
java.util.Optional
;
...
...
@@ -26,7 +26,7 @@ public class RepositorioUsuarios {
public
void
guardar
(
Usuario
usuario
)
{
if
(
em
.
find
(
Usuario
.
class
,
usuario
.
email
())
!=
null
)
throw
new
Cliente
YaRegistrado
();
throw
new
Usuario
YaRegistrado
();
em
.
persist
(
usuario
);
}
...
...
src/main/java/es/ujaen/dae/reservahoteles/rest/ControladorReservas.java
0 → 100644
View file @
744fb747
package
es
.
ujaen
.
dae
.
reservahoteles
.
rest
;
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 administrador
*/
@Service
public
class
ControladorReservas
{
@Autowired
RepositorioUsuarios
repositorioUsuarios
;
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
());
}
}
src/main/java/es/ujaen/dae/reservahoteles/rest/dto/DHotel.java
0 → 100644
View file @
744fb747
package
es
.
ujaen
.
dae
.
reservahoteles
.
rest
.
dto
;
/**
*
* @author ajrueda
*/
public
record
DHotel
(
int
id
,
String
nombre
,
String
localidad
,
String
provincia
,
String
cp
,
int
numHabSimple
,
int
numHabDoble
,
int
precioHabSimple
,
int
precioHabDoble
)
{
}
src/main/java/es/ujaen/dae/reservahoteles/rest/dto/DReserva.java
0 → 100644
View file @
744fb747
package
es
.
ujaen
.
dae
.
reservahoteles
.
rest
.
dto
;
import
java.time.LocalDate
;
/**
*
* @author ajrueda
*/
public
record
DReserva
(
int
num
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
int
numHabSimple
,
int
numHabDoble
,
String
emailUsuario
)
{
}
src/main/java/es/ujaen/dae/reservahoteles/rest/dto/DUsuario.java
0 → 100644
View file @
744fb747
package
es
.
ujaen
.
dae
.
reservahoteles
.
rest
.
dto
;
/**
*
* @author ajrueda
*/
public
record
DUsuario
(
String
nombre
,
String
direccion
,
String
tlf
,
String
email
,
String
clave
)
{
}
src/main/java/es/ujaen/dae/reservahoteles/servicios/ServicioReservas.java
View file @
744fb747
...
...
@@ -5,7 +5,7 @@ import es.ujaen.dae.reservahoteles.excepciones.OperacionDeDireccion;
import
es.ujaen.dae.reservahoteles.entidades.Usuario
;
import
es.ujaen.dae.reservahoteles.entidades.Hotel
;
import
es.ujaen.dae.reservahoteles.entidades.Reserva
;
import
es.ujaen.dae.reservahoteles.excepciones.
Cliente
YaRegistrado
;
import
es.ujaen.dae.reservahoteles.excepciones.
Usuario
YaRegistrado
;
import
es.ujaen.dae.reservahoteles.repositorios.RepositorioHoteles
;
import
es.ujaen.dae.reservahoteles.repositorios.RepositorioUsuarios
;
import
es.ujaen.dae.reservahoteles.util.UtilString
;
...
...
@@ -58,7 +58,7 @@ public class ServicioReservas {
public
void
nuevoCliente
(
@Valid
Usuario
cliente
)
{
// Evitar que se cree un usuario con la cuenta de direccion
if
(
cliente
.
email
().
equals
(
direccion
.
email
()))
throw
new
Cliente
YaRegistrado
();
throw
new
Usuario
YaRegistrado
();
repositorioClientes
.
guardar
(
cliente
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment