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
c1dbc3d3
authored
Feb 24, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat: [TestBibliotecaPersonalController]: Empezado el controlador de los nuevos métodos
parent
111fdbb8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
114 additions
and
0 deletions
src/main/java/com/ujaen/tfg/mangaffinity/rest/BibliotecaPersonalController.java
src/test/java/com/ujaen/tfg/mangaffinity/rest/TestBibliotecaPersonalController.java
src/main/java/com/ujaen/tfg/mangaffinity/rest/BibliotecaPersonalController.java
0 → 100644
View file @
c1dbc3d3
package
com
.
ujaen
.
tfg
.
mangaffinity
.
rest
;
import
com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal
;
import
com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonalRecurso
;
import
com.ujaen.tfg.mangaffinity.entidades.Categoria
;
import
com.ujaen.tfg.mangaffinity.entidades.Recurso
;
import
com.ujaen.tfg.mangaffinity.excepciones.RecursoNoExiste
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTORecursoEnBiblioteca
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.Mapper
;
import
com.ujaen.tfg.mangaffinity.servicios.ServicioBibliotecaPersonal
;
import
com.ujaen.tfg.mangaffinity.servicios.ServicioRecursos
;
import
com.ujaen.tfg.mangaffinity.servicios.ServicioUsuarios
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@RestController
@RequestMapping
(
"/biblioteca"
)
public
class
BibliotecaPersonalController
{
@Autowired
private
ServicioBibliotecaPersonal
servicioBibliotecaPersonal
;
@Autowired
private
ServicioRecursos
servicioRecursos
;
@Autowired
private
ServicioUsuarios
servicioUsuarios
;
@Autowired
private
Mapper
mapper
;
@PostMapping
(
"/{usuarioId}/recursos/{recursoId}/categoria"
)
public
ResponseEntity
<
String
>
anadirRecursoBiblioteca
(
@PathVariable
Long
usuarioId
,
@PathVariable
Long
recursoId
,
@RequestBody
DTORecursoEnBiblioteca
dtoRecursoEnBiblioteca
)
{
try
{
BibliotecaPersonal
biblioteca
=
servicioUsuarios
.
obtenerBibliotecaDeUsuario
(
usuarioId
);
if
(
biblioteca
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
NOT_FOUND
).
build
();
}
Recurso
recurso
=
servicioRecursos
.
buscarRecursoPorId
(
recursoId
);
if
(
recurso
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
NOT_FOUND
).
build
();
}
servicioBibliotecaPersonal
.
anadirRecursoBiblioteca
(
biblioteca
,
recurso
,
dtoRecursoEnBiblioteca
.
getCategoria
());
return
ResponseEntity
.
status
(
HttpStatus
.
CREATED
).
build
();
}
catch
(
RecursoNoExiste
e
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
NOT_FOUND
).
build
();
}
catch
(
Exception
e
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
INTERNAL_SERVER_ERROR
).
build
();
}
}
@GetMapping
(
"/{usuarioId}/recursos/categoria/{categoria}"
)
public
ResponseEntity
<
List
<
DTORecursoEnBiblioteca
>>
listarRecursosPorCategoria
(
@PathVariable
Long
usuarioId
,
@PathVariable
Categoria
categoria
)
{
try
{
BibliotecaPersonal
biblioteca
=
servicioUsuarios
.
obtenerBibliotecaDeUsuario
(
usuarioId
);
if
(
biblioteca
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
NOT_FOUND
).
build
();
}
List
<
BibliotecaPersonalRecurso
>
recursos
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
biblioteca
.
getId
(),
categoria
);
List
<
DTORecursoEnBiblioteca
>
dtoRecursos
=
recursos
.
stream
()
.
map
(
bpr
->
new
DTORecursoEnBiblioteca
(
bpr
.
getRecurso
().
getId
(),
bpr
.
getRecurso
().
getTitulo
(),
bpr
.
getCategoria
()))
.
collect
(
Collectors
.
toList
());
return
ResponseEntity
.
ok
(
dtoRecursos
);
}
catch
(
Exception
e
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
INTERNAL_SERVER_ERROR
).
build
();
}
}
@DeleteMapping
(
"/{usuarioId}/recursos/{recursoId}"
)
public
ResponseEntity
<
String
>
eliminarRecursoDeBiblioteca
(
@PathVariable
Long
usuarioId
,
@PathVariable
Long
recursoId
)
{
try
{
BibliotecaPersonal
biblioteca
=
servicioUsuarios
.
obtenerBibliotecaDeUsuario
(
usuarioId
);
if
(
biblioteca
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
NOT_FOUND
).
build
();
}
servicioBibliotecaPersonal
.
eliminarRecurso
(
biblioteca
.
getId
(),
recursoId
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
"Recurso eliminado correctamente"
);
}
catch
(
Exception
e
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
INTERNAL_SERVER_ERROR
).
build
();
}
}
@PutMapping
(
"/{usuarioId}/recursos/{recursoId}/categoria"
)
public
ResponseEntity
<
String
>
modificarCategoriaDeRecurso
(
@PathVariable
Long
usuarioId
,
@PathVariable
Long
recursoId
,
@RequestBody
DTORecursoEnBiblioteca
dtoRecurso
)
{
try
{
BibliotecaPersonal
biblioteca
=
servicioUsuarios
.
obtenerBibliotecaDeUsuario
(
usuarioId
);
if
(
biblioteca
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
NOT_FOUND
).
build
();
}
servicioBibliotecaPersonal
.
modificarCategoria
(
biblioteca
.
getId
(),
recursoId
,
dtoRecurso
.
getCategoria
());
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
build
();
}
catch
(
Exception
e
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
INTERNAL_SERVER_ERROR
).
body
(
"Error interno"
);
}
}
}
src/test/java/com/ujaen/tfg/mangaffinity/rest/TestBibliotecaPersonalController.java
0 → 100644
View file @
c1dbc3d3
This diff is collapsed.
Click to expand it.
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