From cbe2843887b80522634bc7a5816dbcb1f56d6b6e Mon Sep 17 00:00:00 2001 From: DylanSerkovich Date: Sun, 9 Jun 2024 14:22:31 -0500 Subject: [PATCH 1/3] Agregar estado a la hoja de vida --- .../infrastructure/adapter/dao/HojaDeVidaBdDao.java | 10 +++++++--- .../adapter/entity/HojaDeVidaEntity.java | 1 + .../adapter/mapper/HojaDeVidaMapper.java | 5 +++++ .../adapter/repository/HojaDeVidaRepository.java | 8 ++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java index 17408de..70e3101 100644 --- a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java +++ b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java @@ -1,6 +1,7 @@ package com.entrevistador.orquestador.infrastructure.adapter.dao; import com.entrevistador.orquestador.dominio.model.Perfil; +import com.entrevistador.orquestador.dominio.model.enums.EstadoHojaDeVidaEnum; import com.entrevistador.orquestador.infrastructure.adapter.mapper.HojaDeVidaMapper; import com.entrevistador.orquestador.dominio.excepciones.IdHojaDeVidaRagNuloException; import com.entrevistador.orquestador.dominio.excepciones.UsernameNoEncontradoException; @@ -19,8 +20,10 @@ public class HojaDeVidaBdDao implements HojaDeVidaDao { private final HojaDeVidaMapper mapper; public Mono guardarHojaDeVida(HojaDeVidaModel hojaDeVidaModel){ - return Mono.just(this.mapper.mapHojaDeVidaModelToHojaDeVidaEntity(hojaDeVidaModel)) - .flatMap(this.hojaDeVidaRepository::save) + HojaDeVidaEntity entity = this.mapper.mapHojaDeVidaModelToHojaDeVidaEntity(hojaDeVidaModel); + + return this.hojaDeVidaRepository.actualizarEstadoHojadeVidaPorUsername(entity.getUsername(), EstadoHojaDeVidaEnum.AT.name()) + .then(this.hojaDeVidaRepository.save(entity)) .then(); } @@ -34,7 +37,7 @@ public Mono obtenerIdHojaDeVidaRag(String username){ } public Mono obtenerHojaDeVidaPorNombreUsuario(String username){ - return this.hojaDeVidaRepository.findFirstByUsernameOrderByFechaCreacionDesc(username) + return this.hojaDeVidaRepository.findFirstByUsernameAndEstadoHojaDeVida(username,EstadoHojaDeVidaEnum.NV.name()) .map(this.mapper::mapHojaDeVidaEntityToHojaDeVida); } @@ -56,6 +59,7 @@ public Mono actualizarDatosPerfil(String uuid, Perfil perfil) { .nivelIngles(perfil.getNivelIngles()) .otrasHabilidades(perfil.getOtrasHabilidades()) .fechaCreacion(hojaDeVidaEntity.getFechaCreacion()) + .estadoHojaDeVida(hojaDeVidaEntity.getEstadoHojaDeVida()) .build())).then(); } } diff --git a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/entity/HojaDeVidaEntity.java b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/entity/HojaDeVidaEntity.java index 15d8ce3..d46c73c 100644 --- a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/entity/HojaDeVidaEntity.java +++ b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/entity/HojaDeVidaEntity.java @@ -32,5 +32,6 @@ public class HojaDeVidaEntity { private List proyectos; private String nivelIngles; private List otrasHabilidades; + private String estadoHojaDeVida; private LocalDateTime fechaCreacion; } diff --git a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java index 8527305..338ec66 100644 --- a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java +++ b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java @@ -1,5 +1,6 @@ package com.entrevistador.orquestador.infrastructure.adapter.mapper; +import com.entrevistador.orquestador.dominio.model.enums.EstadoHojaDeVidaEnum; import com.entrevistador.orquestador.infrastructure.adapter.dto.EntrevistaDto; import com.entrevistador.orquestador.infrastructure.adapter.dto.FeedbackDto; import com.entrevistador.orquestador.infrastructure.adapter.dto.HojaDeVidaDto; @@ -32,8 +33,12 @@ public interface HojaDeVidaMapper { @Mapping(target = "uuid", ignore = true) @Mapping(target = "fechaCreacion", expression = "java(defaultFechaCreacion())") + @Mapping(target = "estadoHojaDeVida", expression = "java(defaultEstadoHojaDeVida())") HojaDeVidaEntity mapHojaDeVidaModelToHojaDeVidaEntity(HojaDeVidaModel hojaDeVidaModel); + default String defaultEstadoHojaDeVida(){ + return EstadoHojaDeVidaEnum.NV.name(); + } default LocalDateTime defaultFechaCreacion() { return LocalDateTime.now(ZoneOffset.UTC); } diff --git a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/repository/HojaDeVidaRepository.java b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/repository/HojaDeVidaRepository.java index a4144c8..8161230 100644 --- a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/repository/HojaDeVidaRepository.java +++ b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/repository/HojaDeVidaRepository.java @@ -1,11 +1,19 @@ package com.entrevistador.orquestador.infrastructure.adapter.repository; import com.entrevistador.orquestador.infrastructure.adapter.entity.HojaDeVidaEntity; +import org.springframework.data.mongodb.repository.Query; import org.springframework.data.mongodb.repository.ReactiveMongoRepository; +import org.springframework.data.mongodb.repository.Update; import org.springframework.stereotype.Repository; import reactor.core.publisher.Mono; @Repository public interface HojaDeVidaRepository extends ReactiveMongoRepository { Mono findFirstByUsernameOrderByFechaCreacionDesc(String username); + + Mono findFirstByUsernameAndEstadoHojaDeVida(String username, String estadoHojaDeVida); + + @Query("{ 'username' : ?0, 'estadoHojaDeVida' : { $ne: 'AT' } }") + @Update("{'$set': {'estadoHojaDeVida': ?1 }}") + Mono actualizarEstadoHojadeVidaPorUsername(String username, String estadoHojaDeVida); } From f701efbb93d1c4d72a2cc1a38f4be2211e582f6b Mon Sep 17 00:00:00 2001 From: DylanSerkovich Date: Sun, 9 Jun 2024 14:23:07 -0500 Subject: [PATCH 2/3] Estado hoja de vida Enum --- .../dominio/model/enums/EstadoHojaDeVidaEnum.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java diff --git a/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java b/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java new file mode 100644 index 0000000..2c78e68 --- /dev/null +++ b/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java @@ -0,0 +1,15 @@ +package com.entrevistador.orquestador.dominio.model.enums; + +import lombok.Getter; + +@Getter +public enum EstadoHojaDeVidaEnum { + AT("ANTIGUO"), + NV("NUEVO"); + + private String descripcion; + + EstadoHojaDeVidaEnum(String descripcion) { + this.descripcion = descripcion; + } +} From e1cd107f2f42644228785d0f36a749d33e3fd3ae Mon Sep 17 00:00:00 2001 From: DylanSerkovich Date: Sun, 9 Jun 2024 16:25:44 -0500 Subject: [PATCH 3/3] Cambiar estados --- .../orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java | 4 ++-- .../infrastructure/adapter/dao/HojaDeVidaBdDao.java | 4 ++-- .../infrastructure/adapter/mapper/HojaDeVidaMapper.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java b/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java index 2c78e68..bb5d6c2 100644 --- a/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java +++ b/src/main/java/com/entrevistador/orquestador/dominio/model/enums/EstadoHojaDeVidaEnum.java @@ -4,8 +4,8 @@ @Getter public enum EstadoHojaDeVidaEnum { - AT("ANTIGUO"), - NV("NUEVO"); + US("USADO"), + NU("NO USADO"); private String descripcion; diff --git a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java index 70e3101..80d2392 100644 --- a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java +++ b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/dao/HojaDeVidaBdDao.java @@ -22,7 +22,7 @@ public class HojaDeVidaBdDao implements HojaDeVidaDao { public Mono guardarHojaDeVida(HojaDeVidaModel hojaDeVidaModel){ HojaDeVidaEntity entity = this.mapper.mapHojaDeVidaModelToHojaDeVidaEntity(hojaDeVidaModel); - return this.hojaDeVidaRepository.actualizarEstadoHojadeVidaPorUsername(entity.getUsername(), EstadoHojaDeVidaEnum.AT.name()) + return this.hojaDeVidaRepository.actualizarEstadoHojadeVidaPorUsername(entity.getUsername(), EstadoHojaDeVidaEnum.NU.name()) .then(this.hojaDeVidaRepository.save(entity)) .then(); } @@ -37,7 +37,7 @@ public Mono obtenerIdHojaDeVidaRag(String username){ } public Mono obtenerHojaDeVidaPorNombreUsuario(String username){ - return this.hojaDeVidaRepository.findFirstByUsernameAndEstadoHojaDeVida(username,EstadoHojaDeVidaEnum.NV.name()) + return this.hojaDeVidaRepository.findFirstByUsernameAndEstadoHojaDeVida(username,EstadoHojaDeVidaEnum.US.name()) .map(this.mapper::mapHojaDeVidaEntityToHojaDeVida); } diff --git a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java index 338ec66..d3176c3 100644 --- a/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java +++ b/src/main/java/com/entrevistador/orquestador/infrastructure/adapter/mapper/HojaDeVidaMapper.java @@ -37,7 +37,7 @@ public interface HojaDeVidaMapper { HojaDeVidaEntity mapHojaDeVidaModelToHojaDeVidaEntity(HojaDeVidaModel hojaDeVidaModel); default String defaultEstadoHojaDeVida(){ - return EstadoHojaDeVidaEnum.NV.name(); + return EstadoHojaDeVidaEnum.US.name(); } default LocalDateTime defaultFechaCreacion() { return LocalDateTime.now(ZoneOffset.UTC);