Skip to content

Commit a5d6965

Browse files
committed
Updated Controllers and Services
1 parent 9a0cdbc commit a5d6965

File tree

17 files changed

+137
-171
lines changed

17 files changed

+137
-171
lines changed

src/main/java/com/api/rest/v1/controllers/ProductoController.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public ResponseEntity<?> addProducto(@RequestBody ProductoEntity producto) {
7474
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
7575
@PutMapping("/{id}")
7676
@PreAuthorize("hasRole('ROLE_ADMIN')")
77-
public ResponseEntity<?> updateProducto(@PathVariable ObjectId id, @RequestBody ProductoEntity producto) {
77+
public ResponseEntity<?> updateProducto(@PathVariable String id, @RequestBody ProductoEntity producto) {
7878
try {
7979
iProductoService.updateProducto(id, producto);
8080
return new ResponseEntity<ProductoEntity>(producto, HttpStatus.OK);
@@ -96,7 +96,7 @@ public ResponseEntity<?> updateProducto(@PathVariable ObjectId id, @RequestBody
9696
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
9797
@DeleteMapping("/{id}")
9898
@PreAuthorize("hasRole('ROLE_ADMIN')")
99-
public ResponseEntity<?> deleteProducto(@PathVariable("id") ObjectId id) {
99+
public ResponseEntity<?> deleteProducto(@PathVariable("id") String id) {
100100
try {
101101
iProductoService.deleteProducto(id);
102102
return new ResponseEntity<ProductoEntity>(HttpStatus.OK);
@@ -140,7 +140,7 @@ public Page<ProductoEntity> getAll(Pageable pageable) {
140140
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
141141
@PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
142142
@GetMapping("/id/{id}")
143-
public ProductoEntity getById(@PathVariable("id") ObjectId id) {
143+
public ProductoEntity getById(@PathVariable("id") String id) {
144144
return iProductoService.getById(id);
145145
}
146146

@@ -194,6 +194,23 @@ public Page<ProductoEntity> getByNombre(@PathVariable("nombre") String nombre, P
194194
public Page<ProductoEntity> getByDescripcion(@PathVariable("descripcion") String descripcion, Pageable pageable) {
195195
return iProductoService.getByDescripcion(descripcion, pageable);
196196
}
197+
198+
// ============================
199+
// ===== GET BY CATEGORIA ===
200+
// ============================
201+
// ---LISTADO DE PRODUCTOS O PRODUCTO POR CATEGORIA---
202+
@Operation(summary = "Listado de Productos o Producto según su Categoría")
203+
@ApiResponses(value = {
204+
@ApiResponse(responseCode = "200", description = "Se ha Traído el Listado de Productos o Producto según su CATEGORÍA Correctamente", content = {
205+
@Content(mediaType = "application/json") }),
206+
@ApiResponse(responseCode = "400", description = "No se pudo traer el Listado de Productos o Producto según su CATEGORÍA. Comprobar la Solicitud", content = @Content),
207+
@ApiResponse(responseCode = "404", description = "El Listado de Productos o Producto según su CATEGORÍA no está Disponible ya que el recurso pedido no existe. Comprobar solicitud", content = @Content),
208+
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
209+
@PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
210+
@GetMapping("/categoria/{categoria}")
211+
public Page<ProductoEntity> getByCategoria(@PathVariable("categoria") String categoria, Pageable pageable) {
212+
return iProductoService.getByCategoria(categoria, pageable);
213+
}
197214

198215
// ============================
199216
// ===== GET BY MARCA ===
@@ -241,7 +258,7 @@ public Page<ProductoEntity> getByImagen(@PathVariable("imagen") String imagen, P
241258
@ApiResponse(responseCode = "404", description = "El Listado de Productos o Producto según su HOJA DE DATOS no está Disponible ya que el recurso pedido no existe. Comprobar solicitud", content = @Content),
242259
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
243260
@PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
244-
@GetMapping("/hojaDatos/{hojaDatos}")
261+
@GetMapping("/hoja-datos/{hojaDatos}")
245262
public Page<ProductoEntity> getByHojaDatos(@PathVariable("hojaDatos") String hojaDatos, Pageable pageable) {
246263
return iProductoService.getByHojaDatos(hojaDatos, pageable);
247264
}

src/main/java/com/api/rest/v1/entities/ProductoEntity.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import javax.validation.constraints.NotNull;
66

77
import org.bson.types.ObjectId;
8+
import org.springframework.data.mongodb.core.index.Indexed;
89
import org.springframework.data.mongodb.core.mapping.Document;
910
import org.springframework.data.mongodb.core.mapping.Field;
1011

@@ -21,14 +22,15 @@
2122
public class ProductoEntity {
2223

2324
@Field("_id")
24-
@NotNull(message="El ID no puede ser null")
25-
private ObjectId id;
25+
private String id;
2626

2727
@Field("codigo")
28+
@Indexed(unique = true)
2829
@NotNull(message="El Código no puede ser null")
2930
private String codigo;
3031

3132
@Field("nombre")
33+
@Indexed(unique = true)
3234
@NotNull(message="El Nombre no puede ser null")
3335
private String nombre;
3436

src/main/java/com/api/rest/v1/repositories/I_ProductoRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import com.api.rest.v1.entities.ProductoEntity;
1212

13-
public interface I_ProductoRepository extends MongoRepository<ProductoEntity, ObjectId> {
13+
public interface I_ProductoRepository extends MongoRepository<ProductoEntity, String> {
1414

1515
/*
1616
* LOS METODOS OPTIONAL Y LAS ANNOTATIONS @QUERY(JSON Query Methods) LOS IMPLEMENTA
@@ -26,7 +26,7 @@ public interface I_ProductoRepository extends MongoRepository<ProductoEntity, Ob
2626
*
2727
*/
2828
@Query("{'id': ?0}")
29-
Optional<ProductoEntity> findById(ObjectId id);
29+
Optional<ProductoEntity> findById(String id);
3030

3131
@Query(value = "{'codigo': {$regex : ?0, $options: 'i'}}")
3232
Page<ProductoEntity> findByCodigo(String codigo, Pageable pageable);

src/main/java/com/api/rest/v1/security/controllers/AuthController.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,9 @@
2626
import com.api.rest.v1.security.dto.JwtDTO;
2727
import com.api.rest.v1.security.dto.LoginUsuarioDTO;
2828
import com.api.rest.v1.security.dto.SigninUsuarioDTO;
29-
import com.api.rest.v1.security.entities.Rol;
3029
import com.api.rest.v1.security.entities.Usuario;
3130
import com.api.rest.v1.security.enums.TipoRol;
3231
import com.api.rest.v1.security.jwt.JwtProvider;
33-
import com.api.rest.v1.security.services.RolService;
3432
import com.api.rest.v1.security.services.UsuarioServiceImpl;
3533

3634

@@ -50,9 +48,6 @@ public class AuthController {
5048
@Autowired
5149
UsuarioServiceImpl usuarioServiceImpl;
5250

53-
@Autowired
54-
RolService rolService;
55-
5651
@Autowired
5752
JwtProvider jwtProvider;
5853

@@ -84,17 +79,17 @@ public ResponseEntity<?> signin(@Valid @RequestBody SigninUsuarioDTO signinUsuar
8479
Usuario usuario = new Usuario(signinUsuario.getNombre(), signinUsuario.getUsername()
8580
, passwordEncoder.encode(signinUsuario.getPassword()),signinUsuario.getEmail());
8681

87-
Set<Rol> roles = new HashSet<>();
82+
Set<TipoRol> roles = new HashSet<>();
8883

8984
if(signinUsuario.getRoles().contains("user")
9085
|| signinUsuario.getRoles().contains("admin")
9186
|| signinUsuario.getRoles().contains("")) {
9287

93-
roles.add(rolService.getByRol(TipoRol.ROLE_USER).get());
88+
roles.add(TipoRol.ROLE_USER);
9489
}
9590

9691
if (signinUsuario.getRoles().contains("admin")) {
97-
roles.add(rolService.getByRol(TipoRol.ROLE_ADMIN).get());
92+
roles.add(TipoRol.ROLE_ADMIN);
9893
}
9994

10095
usuario.setRoles(roles);
@@ -121,8 +116,8 @@ public ResponseEntity<JwtDTO> login(@Valid @RequestBody LoginUsuarioDTO loginUsu
121116

122117
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
123118

124-
//JwtDTO jwtDto = new JwtDTO(jwt, userDetails.getUsername(), userDetails.getAuthorities());
125-
JwtDTO jwtDto = new JwtDTO(jwt);
119+
JwtDTO jwtDto = new JwtDTO(jwt, userDetails.getUsername(), userDetails.getAuthorities());
120+
126121

127122
return new ResponseEntity(jwtDto, HttpStatus.OK);
128123
}

src/main/java/com/api/rest/v1/security/controllers/UsuarioController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public ResponseEntity<?> addUsuario(@RequestBody SigninUsuarioDTO usuarioDTO) {
7575
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
7676
@PutMapping("/{id}")
7777
@PreAuthorize("hasRole('ROLE_ADMIN')")
78-
public ResponseEntity<?> updateUsuario(@PathVariable("id") ObjectId id,@RequestBody SigninUsuarioDTO usuarioDTO) {
78+
public ResponseEntity<?> updateUsuario(@PathVariable("id") String id,@RequestBody SigninUsuarioDTO usuarioDTO) {
7979

8080
try {
8181
usuarioService.updateUsuario(id, usuarioDTO);
@@ -101,7 +101,7 @@ public ResponseEntity<?> updateUsuario(@PathVariable("id") ObjectId id,@RequestB
101101
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
102102
@DeleteMapping("/{id}")
103103
@PreAuthorize("hasRole('ROLE_ADMIN')")
104-
public ResponseEntity<?> deleteUsuario(@RequestBody ObjectId id) {
104+
public ResponseEntity<?> deleteUsuario(@RequestBody String id) {
105105

106106
try {
107107
usuarioService.deleteUsuario(id);

src/main/java/com/api/rest/v1/security/dto/JwtDTO.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,21 @@ public class JwtDTO {
1818
private String username;
1919
private Collection<? extends GrantedAuthority> authorities;
2020

21-
public JwtDTO(String token, String username, Collection<? extends GrantedAuthority> authorities) {
21+
22+
23+
public JwtDTO(String token) {
24+
this.token = token;
25+
}
26+
27+
28+
public JwtDTO(String token, String username) {
2229
this.token = token;
2330
this.username = username;
24-
this.authorities = authorities;
2531
}
2632

27-
public JwtDTO(String token) {
33+
public JwtDTO(String token, String username, Collection<? extends GrantedAuthority> authorities) {
2834
this.token = token;
35+
this.username = username;
36+
this.authorities = authorities;
2937
}
3038
}

src/main/java/com/api/rest/v1/security/entities/Rol.java

Lines changed: 0 additions & 39 deletions
This file was deleted.
Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
package com.api.rest.v1.security.entities;
22

3-
import java.util.HashSet;
3+
44
import java.util.Set;
55

66
import javax.validation.constraints.NotNull;
77

88
import org.bson.types.ObjectId;
9+
import org.springframework.data.mongodb.core.index.Indexed;
910
import org.springframework.data.mongodb.core.mapping.Document;
1011
import org.springframework.data.mongodb.core.mapping.Field;
1112

13+
14+
import com.api.rest.v1.security.enums.TipoRol;
15+
1216
import lombok.AllArgsConstructor;
1317
import lombok.Data;
1418
import lombok.NoArgsConstructor;
15-
import nonapi.io.github.classgraph.json.Id;
1619

1720
@Data
1821
@AllArgsConstructor
@@ -22,7 +25,7 @@ public class Usuario {
2225

2326
@Field("_id")
2427
@NotNull(message="El ID no puede ser null")
25-
private ObjectId id;
28+
private String id;
2629

2730
@Field("nombre")
2831
@NotNull(message = "El Nombre no puede ser null")
@@ -33,6 +36,7 @@ public class Usuario {
3336
private String apellido;
3437

3538
@Field("user")
39+
@Indexed(unique = true)
3640
@NotNull(message = "El Username no puede ser null")
3741
private String username;
3842

@@ -41,35 +45,66 @@ public class Usuario {
4145
private String password;
4246

4347
@Field("email")
48+
@Indexed(unique = true)
4449
@NotNull(message = "El Email no puede ser null")
4550
private String email;
4651

52+
@Field("roles")
4753
@NotNull(message="Los Roles no pueden ser nulos")
48-
private Set<Rol> roles = new HashSet<>();
54+
private Set<TipoRol> roles;
4955

5056

5157
/*Constructor parametrico con id
5258
*
5359
*/
54-
public Usuario(@NotNull ObjectId id,@NotNull String nombre, @NotNull String username, @NotNull String password
55-
, @NotNull String email) {
60+
public Usuario(@NotNull String id,@NotNull String nombre, @NotNull String username, @NotNull String password
61+
, @NotNull String email , @NotNull Set<TipoRol> roles) {
62+
this.id=id;
63+
this.nombre = nombre;
64+
this.username = username;
65+
this.password = password;
66+
this.email = email;
67+
this.roles = roles;
68+
}
69+
70+
71+
/*Constructor parametrico con id sin roles
72+
*
73+
*/
74+
public Usuario(@NotNull String id,@NotNull String nombre, @NotNull String username, @NotNull String password
75+
, @NotNull String email ) {
5676
this.id=id;
5777
this.nombre = nombre;
5878
this.username = username;
5979
this.password = password;
6080
this.email = email;
81+
6182
}
6283

6384

6485

6586
/*Constructor parametrico sin id
6687
*
6788
*/
68-
public Usuario(@NotNull String nombre, @NotNull String username, @NotNull String password, @NotNull String email) {
69-
this.nombre = nombre;
70-
this.username = username;
71-
this.password = password;
72-
this.email = email;
73-
}
89+
public Usuario(@NotNull String nombre, @NotNull String username, @NotNull String password
90+
, @NotNull String email , @NotNull Set<TipoRol> roles) {
91+
this.nombre = nombre;
92+
this.username = username;
93+
this.password = password;
94+
this.email = email;
95+
this.roles = roles;
96+
}
97+
98+
/*Constructor parametrico sin id y sin roles para SIGNIN
99+
*
100+
*/
101+
public Usuario(@NotNull String nombre, @NotNull String username, @NotNull String password
102+
, @NotNull String email ) {
103+
this.nombre = nombre;
104+
this.username = username;
105+
this.password = password;
106+
this.email = email;
107+
108+
}
74109

75110
}

src/main/java/com/api/rest/v1/security/entities/UsuarioDetails.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,13 @@ public class UsuarioDetails implements UserDetails{
4747
* @return
4848
*/
4949
public static UsuarioDetails build(Usuario usuario){
50-
List<GrantedAuthority> authorities =
51-
usuario.getRoles().stream().map(rol -> new SimpleGrantedAuthority(rol
52-
.getRol().name())).collect(Collectors.toList());
50+
51+
52+
53+
List<GrantedAuthority> authorities =
54+
usuario.getRoles().stream().map(rol -> new SimpleGrantedAuthority(rol.name())).collect(Collectors.toList());
55+
56+
5357
return new UsuarioDetails(usuario.getNombre(), usuario.getApellido(), usuario.getUsername(), usuario.getPassword(), usuario.getEmail(), authorities);
5458
}
5559

0 commit comments

Comments
 (0)