Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions src/main/java/pe/edu/utp/controller/ArticuloController.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import pe.edu.utp.dto.ArticuloDto;
import pe.edu.utp.dto.ArticuloResponseDto;
import pe.edu.utp.entity.Articulo;
import pe.edu.utp.exception.NoDataFoundException;
import pe.edu.utp.service.ArticuloService;
import pe.edu.utp.util.ApiResponse;

@RestController
@RequestMapping("/articulos")
Expand All @@ -33,36 +35,36 @@ public class ArticuloController {
private final ArticuloService articuloService;

@GetMapping
public ResponseEntity<List<ArticuloDto>> getAll(
public ResponseEntity<ApiResponse<List<ArticuloResponseDto>>> getAll(

@RequestParam(value = "marca", required = false, defaultValue = "") String marca,
@RequestParam(value = "categoria", required = false, defaultValue = "") String categoria,
@RequestParam(value = "precioMin", required = false, defaultValue = "0") Double precioMin,
@RequestParam(value = "precioMax", required = false, defaultValue = "0") Double precioMax,
@RequestParam(value = "marca", required = false) String marca,
@RequestParam(value = "categoria", required = false) String categoria,
@RequestParam(value = "precioMin", required = false) Double precioMin,
@RequestParam(value = "precioMax", required = false) Double precioMax,
@RequestParam(value = "offset", required = false, defaultValue = "0") int pageNumber,
@RequestParam(value = "limit", required = false, defaultValue = "5") int pageSize) {

Pageable pageable = PageRequest.of(pageNumber, pageSize);
List<ArticuloDto> articulos;
if (marca == null || categoria == null || precioMin == null || precioMax == null) {
articulos = articuloService.findAll(pageable);
} else {
List<ArticuloResponseDto> articulos;
if (marca !=null || categoria != null || precioMin != null || precioMax != null) {
articulos = articuloService.findByCategoriaAndMarcaAndPrecio(categoria, marca, precioMin, precioMax, pageable);
} else {
articulos = articuloService.findAll(pageable);
}
return ResponseEntity.ok(articulos);
return ApiResponse.ok(articulos).toResponseEntity();
}

@GetMapping(value = "/{id}")
public ResponseEntity<ArticuloDto> findById(@PathVariable("id") int id) {
public ResponseEntity<ApiResponse<ArticuloResponseDto>> findById(@PathVariable("id") int id) {
log.info("Obteniendo articulo con ID: {}", id);
var response = articuloService.findById(id);
return ResponseEntity.ok(response);
return ApiResponse.ok(response).toResponseEntity();
}

@PostMapping
public ResponseEntity<Articulo> create(@Valid @RequestBody ArticuloDto articuloDto) {
public ResponseEntity<ApiResponse<Articulo>> create(@Valid @RequestBody ArticuloDto articuloDto) {
Articulo registro = articuloService.save(articuloDto);
return ResponseEntity.status(HttpStatus.CREATED).body(registro);
return ApiResponse.created("Articulo creado exitosamente", registro).toResponseEntity();
}

@PutMapping(value = "/{id}")
Expand Down
29 changes: 13 additions & 16 deletions src/main/java/pe/edu/utp/controller/UsuarioController.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
import pe.edu.utp.dto.UsuarioResponseDto;
import pe.edu.utp.entity.Usuario;
import pe.edu.utp.service.UsuarioService;
import pe.edu.utp.util.ConstantesHelpers;
import pe.edu.utp.util.WrapperResponse;
import pe.edu.utp.util.ApiResponse;

@RestController
@RequiredArgsConstructor
Expand All @@ -35,46 +34,44 @@ public class UsuarioController {


@GetMapping("/usuarios")
public ResponseEntity<List<UsuarioResponseDto>> findAll(
public ResponseEntity<ApiResponse<List<UsuarioResponseDto>>> findAll(
@RequestParam(value = "email", required = false) String email,
@RequestParam(value = "offset", required = false, defaultValue = "0") int pageNumber,
@RequestParam(value = "limit", required = false, defaultValue = "10") int pageSize) throws Exception {

Pageable pagina = PageRequest.of(pageNumber, pageSize);
List<Usuario> registros = usuarioService.findAll(pagina);
List<UsuarioResponseDto> registrosDTO = converter.fromEntity(registros);
return new WrapperResponse(true, "success", registrosDTO).createResponse(HttpStatus.OK);
return ApiResponse.ok("Users retrieved successfully", registrosDTO).toResponseEntity();
}

@PostMapping("/usuarios-register")
public ResponseEntity<UsuarioResponseDto> create(@RequestBody UsuarioRequestDto usuario) {
Usuario registro = usuarioService.save(converter.registro(usuario));
return new WrapperResponse(true, ConstantesHelpers.MESSAGE_SUCCESS, converter.fromEntity(registro))
.createResponse(HttpStatus.CREATED);
public ResponseEntity<ApiResponse<UsuarioResponseDto>> create(@RequestBody UsuarioRequestDto usuario) {
Usuario registro = usuarioService.save(usuario);
return ApiResponse.created("User created successfully", converter.fromEntity(registro)).toResponseEntity();
}

@PutMapping(value = "/usuarios/{id}")
public ResponseEntity<UsuarioResponseDto> update(
public ResponseEntity<ApiResponse<UsuarioResponseDto>> update(
@PathVariable("id") int id, @RequestBody UsuarioRequestDto usuario) {
Usuario registro = usuarioService.update(converter.registro(usuario));
Usuario registro = usuarioService.update(usuario, id);
if (registro == null) {
return ResponseEntity.notFound().build();
}
return new WrapperResponse(true, ConstantesHelpers.MESSAGE_SUCCESS, converter.fromEntity(registro))
.createResponse(HttpStatus.OK);
return ApiResponse.ok("User updated successfully", converter.fromEntity(registro)).toResponseEntity();
}

@DeleteMapping(value = "/usuarios/{id}")
public ResponseEntity<UsuarioRequestDto> delete(@PathVariable("id") int id) {
public ResponseEntity<ApiResponse<Void>> delete(@PathVariable("id") int id) {
usuarioService.delete(id);
return new WrapperResponse(true, ConstantesHelpers.MESSAGE_SUCCESS, null).createResponse(HttpStatus.OK);
return ApiResponse.noContent().toResponseEntity();
}


@PostMapping(value = "/usuarios/login")
public ResponseEntity<WrapperResponse<LoginResponseDto>> login(
public ResponseEntity<ApiResponse<LoginResponseDto>> login(
@RequestBody LoginRequestDto request) {
LoginResponseDto response = usuarioService.login(request);
return new WrapperResponse<>(true, ConstantesHelpers.MESSAGE_SUCCESS, response).createResponse(HttpStatus.OK);
return ApiResponse.ok("Login successfully", response).toResponseEntity();
}
}
2 changes: 0 additions & 2 deletions src/main/java/pe/edu/utp/converter/ArticuloConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public ArticuloDto fromEntity(Articulo entity) {
return null;
} else {
return ArticuloDto.builder()
.id(entity.getId())
.nombre(entity.getNombre())
.precio(entity.getPrecio())
.marca(entity.getMarca())
Expand All @@ -30,7 +29,6 @@ public Articulo fromDto(ArticuloDto dto) {
return null;
} else {
return Articulo.builder()
.id(dto.getId())
.nombre(dto.getNombre())
.precio(dto.getPrecio())
.marca(dto.getMarca())
Expand Down
43 changes: 43 additions & 0 deletions src/main/java/pe/edu/utp/converter/ArticuloResponseConverter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package pe.edu.utp.converter;

import org.springframework.stereotype.Component;

import pe.edu.utp.dto.ArticuloResponseDto;
import pe.edu.utp.entity.Articulo;

@Component
public class ArticuloResponseConverter extends AbstractConverter<Articulo, ArticuloResponseDto> {

@Override
public ArticuloResponseDto fromEntity(Articulo entity) {
if (entity == null) {
return null;
} else {
return ArticuloResponseDto.builder()
.id(entity.getId())
.nombre(entity.getNombre())
.precio(entity.getPrecio())
.marca(entity.getMarca())
.categoria(entity.getCategoria())
.stock(entity.getStock())
.build();
}
}

@Override
public Articulo fromDto(ArticuloResponseDto dto) {
if (dto == null) {
return null;
} else {
return Articulo.builder()
.id(dto.getId())
.nombre(dto.getNombre())
.precio(dto.getPrecio())
.marca(dto.getMarca())
.categoria(dto.getCategoria())
.stock(dto.getStock())
.build();
}
}

}
6 changes: 0 additions & 6 deletions src/main/java/pe/edu/utp/converter/UsuarioConverter.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package pe.edu.utp.converter;

import org.springframework.stereotype.Component;
import pe.edu.utp.dto.UsuarioRequestDto;
import pe.edu.utp.dto.UsuarioResponseDto;
import pe.edu.utp.entity.Rol;
import pe.edu.utp.entity.Usuario;
Expand Down Expand Up @@ -36,9 +35,4 @@ public Usuario fromDto(UsuarioResponseDto dto) {
}
}

public Usuario registro(UsuarioRequestDto dto) {
if (dto == null) return null;
Rol rol = Rol.valueOf(dto.getRol().toUpperCase());
return Usuario.builder().email(dto.getEmail()).password(dto.getPassword()).rol(rol).build();
}
}
4 changes: 1 addition & 3 deletions src/main/java/pe/edu/utp/dto/ArticuloDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@
@Getter
@AllArgsConstructor
public class ArticuloDto {

private int id;


@NotBlank(message = "El campo nombre no puede estar vacio")
private String nombre;

Expand Down
23 changes: 23 additions & 0 deletions src/main/java/pe/edu/utp/dto/ArticuloResponseDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package pe.edu.utp.dto;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Builder
@NoArgsConstructor
@Setter
@Getter
@AllArgsConstructor
public class ArticuloResponseDto {

private Integer id;
private String nombre;
private String marca;
private String categoria;
private Double precio;
private int stock;
}
16 changes: 0 additions & 16 deletions src/main/java/pe/edu/utp/dto/RefreshTokenResponseDto.java

This file was deleted.

17 changes: 17 additions & 0 deletions src/main/java/pe/edu/utp/exception/EmailAlreadyException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package pe.edu.utp.exception;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(HttpStatus.CONFLICT)
public class EmailAlreadyException extends RuntimeException {

public EmailAlreadyException() {
super();
}

public EmailAlreadyException(String message) {
super(message);
}

}
28 changes: 0 additions & 28 deletions src/main/java/pe/edu/utp/exception/GeneralServiceException.java

This file was deleted.

Loading