Skip to content

Commit 66997ce

Browse files
author
andres
committed
Updated ApiRestful
1 parent b97af3a commit 66997ce

File tree

5 files changed

+57
-0
lines changed

5 files changed

+57
-0
lines changed

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,22 @@ public Page<ProductoEntity> getByMarca(@PathVariable("marca") String marca, Page
200200
return iProductoService.getByMarca(marca, pageable);
201201
}
202202

203+
// =======================
204+
// ===== GET BY IMAGEN ===
205+
// =======================
206+
// ---LISTADO DE PRODUCTOS O PRODUCTO POR IMAGEN---
207+
@Operation(summary = "Listado de Productos o Producto según su Imagen")
208+
@ApiResponses(value = {
209+
@ApiResponse(responseCode = "200", description = "Se ha Traído el Listado de Productos o Producto según su IMAGEN Correctamente", content = {
210+
@Content(mediaType = "application/json") }),
211+
@ApiResponse(responseCode = "400", description = "No se pudo traer el Listado de Productos o Producto según su IMAGEN. Comprobar la Solicitud", content = @Content),
212+
@ApiResponse(responseCode = "404", description = "El Listado de Productos o Producto según su IMAGEN no está Disponible ya que el recurso pedido no existe. Comprobar solicitud", content = @Content),
213+
@ApiResponse(responseCode = "500", description = "Se ha producido un error interno en el Servidor", content = @Content) })
214+
@GetMapping("/imagen/{imagen}")
215+
public Page<ProductoEntity> getByImagen(@PathVariable("imagen") String imagen, Pageable pageable) {
216+
return iProductoService.getByImagen(imagen, pageable);
217+
}
218+
203219
// ==============================
204220
// ===== GET BY HOJA DE DATOS ===
205221
// ==============================

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ public class ProductoEntity {
4444
@NotNull(message="La marca no puede ser null")
4545
private String marca;
4646

47+
@Field("imagen")
48+
@NotNull(message="La Imagen no puede ser null")
49+
private String imagen;
50+
4751
@Field("hoja_datos")
4852
@NotNull(message="La Hoja De Datos no puede ser null")
4953
private String hojaDatos;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ public interface I_ProductoRepository extends MongoRepository<ProductoEntity, St
4242
@Query(value = "{'marca': {$regex : ?0, $options: 'i'}}")
4343
Page<ProductoEntity> findByMarca(String marca, Pageable pageable);
4444

45+
46+
@Query(value = "{'imagen': {$regex : ?0, $options: 'i'}}")
47+
Page<ProductoEntity> findByImagen(String imagen, Pageable pageable);
48+
49+
4550
@Query(value = "{'hojaDatos': {$regex : ?0, $options: 'i'}}")
4651
Page<ProductoEntity> findByHojaDatos(String hojaDatos, Pageable pageable);
4752

src/main/java/com/api/rest/v1/services/I_ProductoService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public interface I_ProductoService {
4343

4444
public abstract Page<ProductoEntity> getByMarca(String marca, Pageable pageable);
4545

46+
public abstract Page<ProductoEntity> getByImagen(String imagen, Pageable pageable);
47+
4648
public abstract Page<ProductoEntity> getByHojaDatos(String hojaDatos, Pageable pageable);
4749

4850
public abstract Page<ProductoEntity> getByStock(int stock, Pageable pageable);

src/main/java/com/api/rest/v1/services/ProductoServiceImplementation.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,37 @@ public Page<ProductoEntity> getByMarca(String marca, Pageable pageable) {
294294
throw new ProductoNotFoundException(
295295
"NO SE PUDO ENCONTRAR EL LISTADO DE PRODUCTOS O PRODUCTO SEGÚN LA MARCA " + marca, e);
296296
}
297+
298+
}
299+
300+
301+
// =========================
302+
// ===== GET BY IMAGEN =====
303+
// =========================
304+
@Override
305+
public Page<ProductoEntity> getByImagen(String imagen, Pageable pageable) {
306+
try {
307+
Page<ProductoEntity> productosPaginados = iProductoRepositoryMongo.findByImagen(imagen, pageable);
308+
309+
// Si esta vacio es nulo
310+
if (productosPaginados.isEmpty() || imagen == " ") {
311+
logger.error("ERROR getByImagen : EL LISTADO DE PRODUCTOS O PRODUCTO SEGÚN LA IMAGEN "
312+
+ imagen + " NO EXISTE!!");
313+
throw new ProductoNotFoundException(
314+
"NO SE PUDO ENCONTRAR EL LISTADO DE PRODUCTOS O PRODUCTO SEGÚN LA IMAGEN " + imagen);
315+
} else {
316+
return productosPaginados;
317+
318+
}
319+
} catch (Exception e) {
320+
logger.error(
321+
"ERROR getByImagen : NO SE HA ENCONTRADO EL LISTADO DE PRODUCTOS O PRODUCTO SEGÚN LA IMAGEN SOLICITADO. CAUSADO POR "
322+
+ e);
323+
throw new ProductoNotFoundException(
324+
"NO SE PUDO ENCONTRAR EL LISTADO DE PRODUCTOS O PRODUCTO SEGÚN LA IMAGEN " + imagen, e);
325+
}
297326
}
327+
298328

299329
// =================================
300330
// ===== GET BY HOJA DE DATOS =====

0 commit comments

Comments
 (0)