Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Rubén Ramírez
/
MangAffinity
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
0c3a74d2
authored
Mar 28, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix: [ServicioRecursos]: Añadidos unos métodos para completar todas las funcionalidades
parent
e52e200f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
49 additions
and
60 deletions
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioRecursos.java
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioRecursos.java
View file @
0c3a74d2
...
...
@@ -31,9 +31,8 @@ public class ServicioRecursos {
*/
@Transactional
public
void
crearRecurso
(
@Valid
Recurso
recurso
)
{
if
(
repositorioRecurso
.
existeRecurso
(
recurso
.
getTitulo
(),
recurso
.
getAutor
(),
recurso
.
getFechaPublicacion
()))
{
throw
new
RecursoYaExiste
();
}
if
(
repositorioRecurso
.
existeRecurso
(
recurso
.
getTitulo
(),
recurso
.
getAutor
(),
recurso
.
getFechaPublicacion
()))
throw
new
RecursoYaExiste
();
repositorioRecurso
.
crear
(
recurso
);
}
...
...
@@ -54,9 +53,8 @@ public class ServicioRecursos {
* Devuelve una lista vacía si el título es nulo o vacío.
*/
public
List
<
Recurso
>
buscarRecursoPorTitulo
(
String
titulo
)
{
if
(
titulo
==
null
||
titulo
.
trim
().
isEmpty
())
{
return
List
.
of
();
}
if
(
titulo
==
null
||
titulo
.
trim
().
isEmpty
())
return
List
.
of
();
return
repositorioRecurso
.
buscarPorTitulo
(
titulo
,
50
);
}
...
...
@@ -67,9 +65,8 @@ public class ServicioRecursos {
* Devuelve una lista vacía si el autor es nulo o vacío.
*/
public
List
<
Recurso
>
buscarRecursoPorAutor
(
String
autor
)
{
if
(
autor
==
null
||
autor
.
trim
().
isEmpty
())
{
return
List
.
of
();
}
if
(
autor
==
null
||
autor
.
trim
().
isEmpty
())
return
List
.
of
();
return
repositorioRecurso
.
buscarPorAutor
(
autor
,
50
);
}
...
...
@@ -80,9 +77,8 @@ public class ServicioRecursos {
*/
@Transactional
(
readOnly
=
true
)
public
List
<
Recurso
>
buscarRecursoPorGenero
(
Genero
genero
)
{
if
(
genero
==
null
)
{
return
List
.
of
();
}
if
(
genero
==
null
)
return
List
.
of
();
return
repositorioRecurso
.
buscarPorGenero
(
genero
);
}
...
...
@@ -152,9 +148,7 @@ public class ServicioRecursos {
*/
@Transactional
public
void
actualizarFotoRecurso
(
Long
recursoId
,
byte
[]
nuevaFoto
)
{
if
(
nuevaFoto
==
null
||
nuevaFoto
.
length
==
0
)
{
throw
new
FotoInvalida
();
}
if
(
nuevaFoto
==
null
||
nuevaFoto
.
length
==
0
)
throw
new
FotoInvalida
();
Recurso
recurso
=
repositorioRecurso
.
buscarPorId
(
recursoId
)
.
orElseThrow
(
RecursoNoExiste:
:
new
);
...
...
@@ -164,20 +158,31 @@ public class ServicioRecursos {
}
/**
* @brief Obtiene los capítulos de un recurso según su tipo.
* @param recursoId Identificador del recurso.
* @param tipo Tipo de recurso a filtrar.
* @return Lista de capítulos del recurso para el tipo especificado. Devuelve una lista vacía si no hay capítulos.
* @throws RecursoSinTipo Si el tipo de recurso es nulo.
* @brief Añade un nuevo capítulo a un recurso.
* @param recursoId Identificador del recurso al que se añadirá el capítulo.
* @param nuevoCapitulo Objeto Capitulo con los datos a registrar.
* @throws IllegalArgumentException Si el recursoId es nulo o negativo.
* @throws IllegalArgumentException Si el capítulo es nulo.
* @throws RecursoNoExiste Si el recurso no se encuentra en la base de datos.
* Asigna el recurso al capítulo y establece las relaciones con sus fuentes antes de guardarlo.
*/
@Transactional
(
readOnly
=
true
)
public
List
<
Capitulo
>
obtenerCapitulosDeRecursoPorTipo
(
Long
recursoId
,
TipoRecurso
tipo
)
{
if
(
tipo
==
null
)
{
throw
new
RecursoSinTipo
();
}
@Transactional
public
void
anadirCapitulo
(
Long
recursoId
,
Capitulo
nuevoCapitulo
)
{
if
(
recursoId
==
null
||
recursoId
<
1
)
throw
new
IllegalArgumentException
(
"El ID del recurso no puede ser nulo o negativo."
);
return
Optional
.
ofNullable
(
repositorioCapitulo
.
obtenerCapitulosPorTipo
(
recursoId
,
tipo
))
.
orElse
(
List
.
of
());
if
(
nuevoCapitulo
==
null
)
throw
new
CapituloInvalido
();
Recurso
recurso
=
repositorioRecurso
.
buscarPorId
(
recursoId
)
.
orElseThrow
(
RecursoNoExiste:
:
new
);
nuevoCapitulo
.
setRecurso
(
recurso
);
Optional
.
ofNullable
(
nuevoCapitulo
.
getFuentes
()).
ifPresent
(
fuentes
->
fuentes
.
forEach
(
fuente
->
fuente
.
setCapitulo
(
nuevoCapitulo
))
);
repositorioCapitulo
.
crearCapitulo
(
nuevoCapitulo
);
}
/**
...
...
@@ -196,6 +201,21 @@ public class ServicioRecursos {
}
/**
* @brief Obtiene los capítulos de un recurso según su tipo.
* @param recursoId Identificador del recurso.
* @param tipo Tipo de recurso a filtrar.
* @return Lista de capítulos del recurso para el tipo especificado. Devuelve una lista vacía si no hay capítulos.
* @throws RecursoSinTipo Si el tipo de recurso es nulo.
*/
@Transactional
(
readOnly
=
true
)
public
List
<
Capitulo
>
obtenerCapitulosDeRecursoPorTipo
(
Long
recursoId
,
TipoRecurso
tipo
)
{
if
(
tipo
==
null
)
throw
new
RecursoSinTipo
();
return
Optional
.
ofNullable
(
repositorioCapitulo
.
obtenerCapitulosPorTipo
(
recursoId
,
tipo
))
.
orElse
(
List
.
of
());
}
/**
* @brief Obtiene la lista de todos los géneros disponibles.
* @return Lista de nombres de los géneros en formato de cadena.
*/
...
...
@@ -206,36 +226,6 @@ public class ServicioRecursos {
}
/**
* @brief Añade un nuevo capítulo a un recurso.
* @param recursoId Identificador del recurso al que se añadirá el capítulo.
* @param nuevoCapitulo Objeto Capitulo con los datos a registrar.
* @throws IllegalArgumentException Si el recursoId es nulo o negativo.
* @throws IllegalArgumentException Si el capítulo es nulo.
* @throws RecursoNoExiste Si el recurso no se encuentra en la base de datos.
* Asigna el recurso al capítulo y establece las relaciones con sus fuentes antes de guardarlo.
*/
@Transactional
public
void
anadirCapitulo
(
Long
recursoId
,
Capitulo
nuevoCapitulo
)
{
if
(
recursoId
==
null
||
recursoId
<
1
)
{
throw
new
IllegalArgumentException
(
"El ID del recurso no puede ser nulo o negativo."
);
}
if
(
nuevoCapitulo
==
null
)
{
throw
new
CapituloInvalido
();
}
Recurso
recurso
=
repositorioRecurso
.
buscarPorId
(
recursoId
)
.
orElseThrow
(
RecursoNoExiste:
:
new
);
nuevoCapitulo
.
setRecurso
(
recurso
);
Optional
.
ofNullable
(
nuevoCapitulo
.
getFuentes
()).
ifPresent
(
fuentes
->
fuentes
.
forEach
(
fuente
->
fuente
.
setCapitulo
(
nuevoCapitulo
))
);
repositorioCapitulo
.
crearCapitulo
(
nuevoCapitulo
);
}
/**
* Modifica un capítulo existente dentro de un recurso.
* @param recursoId ID del recurso al que pertenece el capítulo.
* @param capituloModificado Entidad Capitulo con los nuevos datos.
...
...
@@ -319,9 +309,8 @@ public class ServicioRecursos {
*/
@Transactional
public
void
agregarFuente
(
FuenteCapitulo
fuente
)
{
if
(
fuente
==
null
||
fuente
.
getCapitulo
()
==
null
)
{
throw
new
IllegalArgumentException
(
"La fuente y su capítulo no pueden ser nulos."
);
}
if
(
fuente
==
null
||
fuente
.
getCapitulo
()
==
null
)
throw
new
IllegalArgumentException
(
"La fuente y su capítulo no pueden ser nulos."
);
repositorioCapitulo
.
agregarFuente
(
fuente
);
}
...
...
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