Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
María Hidalgo
/
carpooling-dae
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
78446e75
authored
Oct 28, 2023
by
María Hidalgo
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Jpa
parent
7fac43cc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
43 additions
and
29 deletions
pom.xml
src/main/java/es/ujaen/dae/carpoolingdae/app/CarpoolingDaeApplication.java
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioViajes.java
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
src/test/java/es/ujaen/dae/carpoolingdae/entidades/UsuarioTest.java
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
pom.xml
View file @
78446e75
...
...
@@ -29,16 +29,16 @@
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
<artifactId>
hibernate-core
</artifactId>
<version>
5.0.7.Final
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
</dependency>
<dependency>
<groupId>
com.h2database
</groupId>
<artifactId>
h2
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
...
...
src/main/java/es/ujaen/dae/carpoolingdae/app/CarpoolingDaeApplication.java
View file @
78446e75
...
...
@@ -5,16 +5,15 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
@SpringBootApplication
(
scanBasePackages
=
"es.ujaen.dae.carpooling.servicios"
)
@SpringBootApplication
(
scanBasePackages
=
{
"es.ujaen.dae.carpooling.servicios"
,
"es.ujaen.dae.carpooling.repositorios"
})
@EntityScan
(
basePackages
=
"es.ujaen.dae.ujacoin.entidades"
)
public
class
CarpoolingDaeApplication
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// Creación de servidor
SpringApplication
.
run
(
CarpoolingDaeApplication
.
class
,
args
);
//ApplicationContext context = servidor.run(args);
// SpringApplication.run(CarpoolingDaeApplication.class, args);
}
}
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
View file @
78446e75
...
...
@@ -19,7 +19,6 @@ import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5;
import
es.ujaen.dae.carpoolingdae.utils.ExprReg
;
import
javax.persistence.CascadeType
;
import
javax.persistence.Entity
;
import
javax.persistence.FetchType
;
import
javax.persistence.Id
;
...
...
@@ -27,6 +26,7 @@ import javax.persistence.JoinColumn;
import
javax.persistence.ManyToOne
;
/**
* Usuario a la app de carpooling
*
...
...
@@ -65,7 +65,7 @@ public class Usuario implements Serializable {
String
clave
;
// Viajes creados por el conductor
@ManyToOne
(
fetch
=
FetchType
.
EAGER
,
cascade
=
CascadeType
.
ALL
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
@JoinColumn
(
name
=
"usuario_dni"
)
List
<
Viaje
>
viajesComoConductor
;
...
...
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioViajes.java
View file @
78446e75
package
es
.
ujaen
.
dae
.
carpoolingdae
.
repositorios
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.TypedQuery
;
import
javax.persistence.Query
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Propagation
;
...
...
@@ -13,10 +16,16 @@ import org.springframework.transaction.annotation.Transactional;
import
es.ujaen.dae.carpoolingdae.entidades.Viaje
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
@Repository
@Transactional
(
propagation
=
Propagation
.
REQUIRED
)
public
class
RepositorioViajes
{
private
final
Logger
logger
=
Logger
.
getLogger
(
Viaje
.
class
.
getName
());
@PersistenceContext
EntityManager
em
;
...
...
@@ -29,11 +38,21 @@ public class RepositorioViajes {
em
.
persist
(
viaje
);
}
public
List
<
Viaje
>
buscarViajes
()
{
TypedQuery
<
Viaje
>
query
=
em
.
createQuery
(
"SELECT v FROM Viaje v"
,
Viaje
.
class
);
return
query
.
getResultList
();
public
List
<
Viaje
>
buscarViajes
(
String
origen
,
String
destino
,
LocalDate
fecha
)
{
List
<
Viaje
>
viajes
=
new
ArrayList
<>();
try
{
Query
q
=
em
.
createQuery
(
"Select v from Viaje v where v.origen=:origen AND v.destino = :destino AND v.fecha = :fecha"
,
Viaje
.
class
);
q
.
setParameter
(
"origen"
,
origen
);
q
.
setParameter
(
"destino"
,
destino
);
q
.
setParameter
(
"fecha"
,
fecha
);
viajes
=
q
.
getResultList
();
}
catch
(
Exception
e
)
{
logger
.
log
(
Level
.
SEVERE
,
e
.
getMessage
(),
e
);
}
return
viajes
;
}
public
void
actualizarViajes
(
Viaje
viaje
)
{
em
.
merge
(
viaje
);
}
...
...
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
View file @
78446e75
...
...
@@ -87,20 +87,21 @@ public class SistemaCarpooling {
*/
public
List
<
Viaje
>
buscarViajes
(
@NotBlank
String
origen
,
@NotBlank
String
destino
,
@NotBlank
LocalDate
fecha
)
{
List
<
Viaje
>
viajes
Encontrados
=
new
ArrayList
<>();
List
<
Viaje
>
listaViajes
=
repositorioViajes
.
buscarViajes
();
List
<
Viaje
>
viajes
=
new
ArrayList
<>();
List
<
Viaje
>
listaViajes
=
repositorioViajes
.
buscarViajes
(
origen
,
destino
,
fecha
);
for
(
Viaje
viaje
:
listaViajes
)
{
// Iterar sobre la colección de viajes
if
(
viaje
.
getOrigen
().
equals
(
origen
)
&&
viaje
.
getDestino
().
equals
(
destino
)
&&
viaje
.
getfechaHora
().
toLocalDate
().
equals
(
fecha
))
{
// Busco todos los viajes de esa fecha
viajes
Encontrados
.
add
(
viaje
);
&&
viaje
.
getfechaHora
().
toLocalDate
().
equals
(
fecha
))
{
viajes
.
add
(
viaje
);
}
else
{
throw
new
ViajeNoExistente
();
}
}
return
viajes
Encontrados
;
return
viajes
;
}
/**
* Enviar solicitud para ser pasajero de un viaje
*
...
...
@@ -109,6 +110,7 @@ public class SistemaCarpooling {
public
void
enviarSolicitudViaje
(
@NotNull
@Valid
Viaje
viaje
,
@NotNull
@Valid
Usuario
pasajero
)
{
// Llamar a la función en viaje para enviar la solicitud
viaje
.
enviarSolicitudParaSerPasajero
(
viaje
,
pasajero
);
repositorioViajes
.
actualizarViajes
(
viaje
);
}
public
void
aceptarPasajeroViaje
(
@NotNull
@Valid
Viaje
viaje
,
@NotNull
@Valid
Usuario
pasajero
,
...
...
src/test/java/es/ujaen/dae/carpoolingdae/entidades/UsuarioTest.java
View file @
78446e75
...
...
@@ -49,5 +49,6 @@ public class UsuarioTest {
Assertions
.
assertThat
(
usuario
.
claveValida
(
clave
)).
isTrue
();
}
}
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
View file @
78446e75
package
es
.
ujaen
.
dae
.
carpoolingdae
.
servicios
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertFalse
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Optional
;
import
javax.validation.ConstraintViolationException
;
import
org.assertj.core.api.Assertions
;
import
java.util.Set
;
...
...
@@ -36,10 +33,6 @@ public class SistemaCarpoolingTest {
SistemaCarpooling
sistemaCarpooling
;
// Accedemos al sistema
@Test
public
void
testAccesoServicioHotel
()
{
Assertions
.
assertThat
(
sistemaCarpooling
).
isNotNull
();
}
@Test
public
void
testAccesoSistemaCarpooling
()
{
...
...
@@ -124,7 +117,7 @@ public class SistemaCarpoolingTest {
// Agregar el viaje al sistema
sistemaCarpooling
.
agregarViaje
(
usuario
,
nuevoViaje
);
//
Buscar
el viaje paraver si ha sido añadido
// el viaje paraver si ha sido añadido
String
origenBusqueda
=
"Origen"
;
String
destinoBusqueda
=
"Destino"
;
LocalDate
fechaBusqueda
=
LocalDate
.
of
(
2023
,
9
,
30
);
...
...
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