From fddde7b1d45fdf9088e00c472d0deba5e22830e2 Mon Sep 17 00:00:00 2001 From: JaaF97 Date: Tue, 22 Oct 2024 15:13:20 -0300 Subject: [PATCH 1/8] feat: agregar modelos Reclamo y TipoReclamo --- .../com/example/project/models/Reclamo.java | 46 +++++++++++++++++++ .../example/project/models/TipoReclamo.java | 36 +++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 src/main/java/com/example/project/models/Reclamo.java create mode 100644 src/main/java/com/example/project/models/TipoReclamo.java diff --git a/src/main/java/com/example/project/models/Reclamo.java b/src/main/java/com/example/project/models/Reclamo.java new file mode 100644 index 0000000..cf355da --- /dev/null +++ b/src/main/java/com/example/project/models/Reclamo.java @@ -0,0 +1,46 @@ +package com.example.project.models; + +import java.time.LocalDateTime; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.PrePersist; +import lombok.Data; + +@Data +@Entity +public class Reclamo { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "tipo_reclamo_id") + private TipoReclamo tipoReclamo; + + private String descripcion; + + private boolean esCritico; + + private LocalDateTime creationDatetime; + + @PrePersist //Este metodo se ejecutara antes de crear persistir al objeto en la BD + public void preCreate() { + creationDatetime = LocalDateTime.now(); + } + + public Reclamo() { + + } + + public Reclamo(TipoReclamo tipoReclamo, String descripcion, boolean esCritico) { + this.tipoReclamo = tipoReclamo; + this.descripcion = descripcion; + this.esCritico = esCritico; + } +} diff --git a/src/main/java/com/example/project/models/TipoReclamo.java b/src/main/java/com/example/project/models/TipoReclamo.java new file mode 100644 index 0000000..0e3afa3 --- /dev/null +++ b/src/main/java/com/example/project/models/TipoReclamo.java @@ -0,0 +1,36 @@ +package com.example.project.models; + +import java.time.LocalDateTime; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.PrePersist; +import lombok.Data; + +@Data +@Entity +public class TipoReclamo { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String nombre; + + private LocalDateTime creationDatetime; + + @PrePersist + public void preCreate() { + creationDatetime = LocalDateTime.now(); + } + + public TipoReclamo() { + + } + + public TipoReclamo(String nombre) { + this.nombre = nombre; + } +} From 73bb24d36ac754f3f574f1c7b34f379fc0d15938 Mon Sep 17 00:00:00 2001 From: JaaF97 Date: Tue, 22 Oct 2024 15:13:35 -0300 Subject: [PATCH 2/8] feat: crear DTOs Reclamo y TipoReclamo --- .../project/dto/Reporte/CrearReporteDTO.java | 14 ++++++++++ .../dto/Reporte/ResponseReporteDTO.java | 28 +++++++++++++++++++ .../example/project/dto/TipoReclamoDTO.java | 24 ++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java create mode 100644 src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java create mode 100644 src/main/java/com/example/project/dto/TipoReclamoDTO.java diff --git a/src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java b/src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java new file mode 100644 index 0000000..909b01f --- /dev/null +++ b/src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java @@ -0,0 +1,14 @@ +package com.example.project.dto.Reporte; + +import lombok.Data; + +@Data +public class CrearReporteDTO { + private Long reclamoId; + private boolean esCritico; + + public CrearReporteDTO(Long reclamoId, boolean esCritico) { + this.reclamoId = reclamoId; + this.esCritico = esCritico; + } +} diff --git a/src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java b/src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java new file mode 100644 index 0000000..2b1ea84 --- /dev/null +++ b/src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java @@ -0,0 +1,28 @@ +package com.example.project.dto.Reporte; + +import java.time.LocalDateTime; + +import com.example.project.models.TipoReclamo; + +import lombok.Data; + +@Data +public class ResponseReporteDTO { + private Long id; + + private TipoReclamo tipoReclamo; + + private String descripcion; + + private boolean esCritico; + + private LocalDateTime creationDatetime; + + public ResponseReporteDTO(Long id, TipoReclamo tipoReclamo, String descripcion, boolean esCritico, LocalDateTime creationDatetime) { + this.id = id; + this.tipoReclamo = tipoReclamo; + this.descripcion = descripcion; + this.esCritico = esCritico; + this.creationDatetime = creationDatetime; + } +} diff --git a/src/main/java/com/example/project/dto/TipoReclamoDTO.java b/src/main/java/com/example/project/dto/TipoReclamoDTO.java new file mode 100644 index 0000000..cd64870 --- /dev/null +++ b/src/main/java/com/example/project/dto/TipoReclamoDTO.java @@ -0,0 +1,24 @@ +package com.example.project.dto; + +import java.time.LocalDateTime; + +import lombok.Data; + +@Data +public class TipoReclamoDTO { + private Long id; + private String nombre; + + private LocalDateTime creationDatetime; + + public TipoReclamoDTO(Long id, String nombre) { + this.id = id; + this.nombre = nombre; + } + + public TipoReclamoDTO(Long id, String nombre, LocalDateTime creationDatetime) { + this.id = id; + this.nombre = nombre; + this.creationDatetime = creationDatetime; + } +} From 44383ce3e02b79944fadea4a94c79b110f3f240f Mon Sep 17 00:00:00 2001 From: Felipe Del Zoppo Date: Tue, 22 Oct 2024 16:21:57 -0300 Subject: [PATCH 3/8] feat: crear modelos reclamo y tipoReclamo --- .../com/example/project/models/Reclamo.java | 22 +++++++++---------- .../example/project/models/TipoReclamo.java | 11 ++-------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/example/project/models/Reclamo.java b/src/main/java/com/example/project/models/Reclamo.java index cf355da..52252b1 100644 --- a/src/main/java/com/example/project/models/Reclamo.java +++ b/src/main/java/com/example/project/models/Reclamo.java @@ -1,6 +1,6 @@ package com.example.project.models; -import java.time.LocalDateTime; + import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -8,11 +8,13 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; -import jakarta.persistence.PrePersist; + +import lombok.Builder; import lombok.Data; @Data @Entity +@Builder public class Reclamo { @Id @@ -25,22 +27,18 @@ public class Reclamo { private String descripcion; - private boolean esCritico; - - private LocalDateTime creationDatetime; - - @PrePersist //Este metodo se ejecutara antes de crear persistir al objeto en la BD - public void preCreate() { - creationDatetime = LocalDateTime.now(); - } + private boolean critico; public Reclamo() { } - public Reclamo(TipoReclamo tipoReclamo, String descripcion, boolean esCritico) { + public Reclamo(Long id, TipoReclamo tipoReclamo, String descripcion, boolean critico) { + this.id = id; this.tipoReclamo = tipoReclamo; this.descripcion = descripcion; - this.esCritico = esCritico; + this.critico = critico; } + + } diff --git a/src/main/java/com/example/project/models/TipoReclamo.java b/src/main/java/com/example/project/models/TipoReclamo.java index 0e3afa3..8da5a46 100644 --- a/src/main/java/com/example/project/models/TipoReclamo.java +++ b/src/main/java/com/example/project/models/TipoReclamo.java @@ -1,12 +1,12 @@ package com.example.project.models; -import java.time.LocalDateTime; + import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.PrePersist; + import lombok.Data; @Data @@ -19,13 +19,6 @@ public class TipoReclamo { private String nombre; - private LocalDateTime creationDatetime; - - @PrePersist - public void preCreate() { - creationDatetime = LocalDateTime.now(); - } - public TipoReclamo() { } From a49e815ddf9191ef3b8d63550ee7ca2129afb170 Mon Sep 17 00:00:00 2001 From: Felipe Del Zoppo Date: Tue, 22 Oct 2024 16:22:47 -0300 Subject: [PATCH 4/8] feat: actualizar dto de reclamo y tipoReclamo --- .../project/dto/Reporte/CrearReporteDTO.java | 14 --------- .../dto/Reporte/ResponseReporteDTO.java | 28 ----------------- .../example/project/dto/TipoReclamoDTO.java | 9 ------ .../project/dto/reclamo/CrearReclamoDTO.java | 17 +++++++++++ .../dto/reclamo/ResponseReclamoDTO.java | 30 +++++++++++++++++++ 5 files changed, 47 insertions(+), 51 deletions(-) delete mode 100644 src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java delete mode 100644 src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java create mode 100644 src/main/java/com/example/project/dto/reclamo/CrearReclamoDTO.java create mode 100644 src/main/java/com/example/project/dto/reclamo/ResponseReclamoDTO.java diff --git a/src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java b/src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java deleted file mode 100644 index 909b01f..0000000 --- a/src/main/java/com/example/project/dto/Reporte/CrearReporteDTO.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.project.dto.Reporte; - -import lombok.Data; - -@Data -public class CrearReporteDTO { - private Long reclamoId; - private boolean esCritico; - - public CrearReporteDTO(Long reclamoId, boolean esCritico) { - this.reclamoId = reclamoId; - this.esCritico = esCritico; - } -} diff --git a/src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java b/src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java deleted file mode 100644 index 2b1ea84..0000000 --- a/src/main/java/com/example/project/dto/Reporte/ResponseReporteDTO.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.example.project.dto.Reporte; - -import java.time.LocalDateTime; - -import com.example.project.models.TipoReclamo; - -import lombok.Data; - -@Data -public class ResponseReporteDTO { - private Long id; - - private TipoReclamo tipoReclamo; - - private String descripcion; - - private boolean esCritico; - - private LocalDateTime creationDatetime; - - public ResponseReporteDTO(Long id, TipoReclamo tipoReclamo, String descripcion, boolean esCritico, LocalDateTime creationDatetime) { - this.id = id; - this.tipoReclamo = tipoReclamo; - this.descripcion = descripcion; - this.esCritico = esCritico; - this.creationDatetime = creationDatetime; - } -} diff --git a/src/main/java/com/example/project/dto/TipoReclamoDTO.java b/src/main/java/com/example/project/dto/TipoReclamoDTO.java index cd64870..da0584e 100644 --- a/src/main/java/com/example/project/dto/TipoReclamoDTO.java +++ b/src/main/java/com/example/project/dto/TipoReclamoDTO.java @@ -1,7 +1,5 @@ package com.example.project.dto; -import java.time.LocalDateTime; - import lombok.Data; @Data @@ -9,16 +7,9 @@ public class TipoReclamoDTO { private Long id; private String nombre; - private LocalDateTime creationDatetime; - public TipoReclamoDTO(Long id, String nombre) { this.id = id; this.nombre = nombre; } - public TipoReclamoDTO(Long id, String nombre, LocalDateTime creationDatetime) { - this.id = id; - this.nombre = nombre; - this.creationDatetime = creationDatetime; - } } diff --git a/src/main/java/com/example/project/dto/reclamo/CrearReclamoDTO.java b/src/main/java/com/example/project/dto/reclamo/CrearReclamoDTO.java new file mode 100644 index 0000000..524b5df --- /dev/null +++ b/src/main/java/com/example/project/dto/reclamo/CrearReclamoDTO.java @@ -0,0 +1,17 @@ +package com.example.project.dto.reclamo; + +import lombok.Data; + +@Data +public class CrearReclamoDTO { + + private Long tipoReclamoId; + private String descripcion; + private boolean critico; + + public CrearReclamoDTO(Long tipoReclamoId, String descripcion, boolean critico) { + this.tipoReclamoId = tipoReclamoId; + this.descripcion = descripcion; + this.critico = critico; + } +} diff --git a/src/main/java/com/example/project/dto/reclamo/ResponseReclamoDTO.java b/src/main/java/com/example/project/dto/reclamo/ResponseReclamoDTO.java new file mode 100644 index 0000000..9eda78d --- /dev/null +++ b/src/main/java/com/example/project/dto/reclamo/ResponseReclamoDTO.java @@ -0,0 +1,30 @@ +package com.example.project.dto.reclamo; + + + +import com.example.project.models.TipoReclamo; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class ResponseReclamoDTO { + private Long id; + + private TipoReclamo tipoReclamo; + + private String descripcion; + + private boolean critico; + + + + public ResponseReclamoDTO(Long id, TipoReclamo tipoReclamo, String descripcion, boolean critico) { + this.id = id; + this.tipoReclamo = tipoReclamo; + this.descripcion = descripcion; + this.critico = critico; + + } +} \ No newline at end of file From 12fb232365b0466f2afd0869f0e11bde823345f2 Mon Sep 17 00:00:00 2001 From: Felipe Del Zoppo Date: Tue, 22 Oct 2024 16:23:07 -0300 Subject: [PATCH 5/8] feat: mapper de reclamo --- .../example/project/mapper/ReclamoMapper.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/example/project/mapper/ReclamoMapper.java diff --git a/src/main/java/com/example/project/mapper/ReclamoMapper.java b/src/main/java/com/example/project/mapper/ReclamoMapper.java new file mode 100644 index 0000000..114d98e --- /dev/null +++ b/src/main/java/com/example/project/mapper/ReclamoMapper.java @@ -0,0 +1,35 @@ +package com.example.project.mapper; + +import java.util.List; + +import com.example.project.dto.reclamo.CrearReclamoDTO; +import com.example.project.dto.reclamo.ResponseReclamoDTO; +import com.example.project.models.Reclamo; +import com.example.project.models.TipoReclamo; + +public class ReclamoMapper { + + public static ResponseReclamoDTO toDto(Reclamo reclamo){ + return ResponseReclamoDTO.builder() + .id(reclamo.getId()) + .tipoReclamo(reclamo.getTipoReclamo()) + .descripcion(reclamo.getDescripcion()) + .critico(reclamo.isCritico()) + .build(); + } + + public static Reclamo toEntity(CrearReclamoDTO reclamoDto, TipoReclamo tipoReclamo){ + return Reclamo.builder() + .tipoReclamo(tipoReclamo) + .descripcion(reclamoDto.getDescripcion()) + .critico(reclamoDto.isCritico()) + .build(); + } + + public static List toDtoList(List reclamos){ + return reclamos + .stream() + .map(ReclamoMapper::toDto) + .toList(); + } +} From 13999ab314253b4e94ce2f8c9186462a8e8e6e31 Mon Sep 17 00:00:00 2001 From: Felipe Del Zoppo Date: Tue, 22 Oct 2024 16:23:20 -0300 Subject: [PATCH 6/8] feat: repository de reclamo --- .../example/project/repositories/IReclamoRepository.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/com/example/project/repositories/IReclamoRepository.java diff --git a/src/main/java/com/example/project/repositories/IReclamoRepository.java b/src/main/java/com/example/project/repositories/IReclamoRepository.java new file mode 100644 index 0000000..2f71ae1 --- /dev/null +++ b/src/main/java/com/example/project/repositories/IReclamoRepository.java @@ -0,0 +1,9 @@ +package com.example.project.repositories; + +import org.springframework.data.repository.CrudRepository; + +import com.example.project.models.Reclamo; + +public interface IReclamoRepository extends CrudRepository{ + +} From 0380ff00ac7bbf93484b50aaa94b374b0bde926e Mon Sep 17 00:00:00 2001 From: Felipe Del Zoppo Date: Tue, 22 Oct 2024 16:23:45 -0300 Subject: [PATCH 7/8] feat: crear services de reclamo --- .../reclamoServices/BuscarReclamoService.java | 46 +++++++++++++++++++ .../interfaces/IBuscarReclamoService.java | 14 ++++++ 2 files changed, 60 insertions(+) create mode 100644 src/main/java/com/example/project/services/reclamoServices/BuscarReclamoService.java create mode 100644 src/main/java/com/example/project/services/reclamoServices/interfaces/IBuscarReclamoService.java diff --git a/src/main/java/com/example/project/services/reclamoServices/BuscarReclamoService.java b/src/main/java/com/example/project/services/reclamoServices/BuscarReclamoService.java new file mode 100644 index 0000000..cc2df9a --- /dev/null +++ b/src/main/java/com/example/project/services/reclamoServices/BuscarReclamoService.java @@ -0,0 +1,46 @@ +package com.example.project.services.reclamoServices; + +import java.util.List; +import java.util.Optional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; + +import com.example.project.mapper.ReclamoMapper; +import com.example.project.models.Reclamo; +import com.example.project.models.TipoReclamo; +import com.example.project.repositories.IReclamoRepository; +import com.example.project.services.reclamoServices.interfaces.IBuscarReclamoService; + +public class BuscarReclamoService implements IBuscarReclamoService{ + + @Autowired + private IReclamoRepository repository; + + @Override + public ResponseEntity buscarReclamo(Long id) { + + Optional optionalReclamo = repository.findById(id); + if (optionalReclamo.isEmpty()) { + return ResponseEntity.notFound().build(); + } + return ResponseEntity.ok(ReclamoMapper.toDto(optionalReclamo.get())); + + } + + @Override + public ResponseEntity buscarReclamos() { + return ResponseEntity + .ok() + .body( + ReclamoMapper.toDtoList((List) repository.findAll()) + ); + } + + @Override + public ResponseEntity buscarReclamosPorTipo(TipoReclamo tipoReclamo) { + //Metodo no implementado + return null; + } + +} diff --git a/src/main/java/com/example/project/services/reclamoServices/interfaces/IBuscarReclamoService.java b/src/main/java/com/example/project/services/reclamoServices/interfaces/IBuscarReclamoService.java new file mode 100644 index 0000000..65fe948 --- /dev/null +++ b/src/main/java/com/example/project/services/reclamoServices/interfaces/IBuscarReclamoService.java @@ -0,0 +1,14 @@ +package com.example.project.services.reclamoServices.interfaces; + +import org.springframework.http.ResponseEntity; + +import com.example.project.models.TipoReclamo; + +public interface IBuscarReclamoService { + + ResponseEntity buscarReclamo(Long id); + + ResponseEntity buscarReclamos(); + + ResponseEntity buscarReclamosPorTipo(TipoReclamo tipoReclamo); +} From 32af4e80ed47672df27a2c06b3702db0278f0b8d Mon Sep 17 00:00:00 2001 From: Felipe Del Zoppo Date: Wed, 23 Oct 2024 17:18:51 -0300 Subject: [PATCH 8/8] feat: Crear el application.properties --- src/main/resources/application.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 516d34b..b9fc0c2 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,8 @@ spring.application.name=project.management + +spring.datasource.url = jdbc:mysql://localhost:3306/e_commerce_db +spring.datasource.username = root +spring.datasource.password = admin +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.jpa.hibernate.ddl-auto=update +spring.jpa.show-sql=true \ No newline at end of file