From 73145e15b816942064bdfd98a0c51ae8fca045e0 Mon Sep 17 00:00:00 2001 From: aalicic Date: Tue, 11 Oct 2022 23:36:47 +0200 Subject: [PATCH] feat/VIC-1745_Calcom_Email_Sync --- .../consultant/update/ConsultantUpdateService.java | 6 +++++- .../api/service/appointment/AppointmentService.java | 13 +++++++++++++ .../update/ConsultantUpdateServiceTest.java | 3 +++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateService.java b/src/main/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateService.java index 7f020861c..1b96ea49f 100644 --- a/src/main/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateService.java +++ b/src/main/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateService.java @@ -16,6 +16,7 @@ import de.caritas.cob.userservice.api.model.Language; import de.caritas.cob.userservice.api.port.out.IdentityClient; import de.caritas.cob.userservice.api.service.ConsultantService; +import de.caritas.cob.userservice.api.service.appointment.AppointmentService; import java.util.Set; import java.util.stream.Collectors; import lombok.NonNull; @@ -31,6 +32,7 @@ public class ConsultantUpdateService { private final @NonNull ConsultantService consultantService; private final @NonNull UserAccountInputValidator userAccountInputValidator; private final @NonNull RocketChatService rocketChatService; + private final @NonNull AppointmentService appointmentService; /** * Updates the basic data of consultant with given id. @@ -62,7 +64,9 @@ public Consultant updateConsultant( this.rocketChatService.updateUser( buildUserUpdateRequestDTO(consultant.getRocketChatId(), updateConsultantDTO)); - return updateDatabaseConsultant(updateConsultantDTO, consultant); + var updatedConsultant = updateDatabaseConsultant(updateConsultantDTO, consultant); + appointmentService.updateConsultant(updatedConsultant); + return updatedConsultant; } private UserDTO buildValidatedUserDTO( diff --git a/src/main/java/de/caritas/cob/userservice/api/service/appointment/AppointmentService.java b/src/main/java/de/caritas/cob/userservice/api/service/appointment/AppointmentService.java index b915deb42..4510d7f08 100644 --- a/src/main/java/de/caritas/cob/userservice/api/service/appointment/AppointmentService.java +++ b/src/main/java/de/caritas/cob/userservice/api/service/appointment/AppointmentService.java @@ -3,9 +3,11 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import de.caritas.cob.userservice.api.adapters.web.dto.ConsultantAdminResponseDTO; +import de.caritas.cob.userservice.api.adapters.web.dto.ConsultantDTO; import de.caritas.cob.userservice.api.adapters.web.dto.CreateConsultantAgencyDTO; import de.caritas.cob.userservice.api.config.apiclient.AppointmentAgencyServiceApiControllerFactory; import de.caritas.cob.userservice.api.config.apiclient.AppointmentConsultantServiceApiControllerFactory; +import de.caritas.cob.userservice.api.model.Consultant; import de.caritas.cob.userservice.api.port.out.IdentityClient; import de.caritas.cob.userservice.api.service.httpheader.SecurityHeaderSupplier; import de.caritas.cob.userservice.api.service.httpheader.TenantHeaderSupplier; @@ -71,6 +73,17 @@ public void createConsultant(ConsultantAdminResponseDTO consultantAdminResponseD } } + public void updateConsultant(Consultant consultant) { + ConsultantAdminResponseDTO ConsultantAdminResponseDTO = new ConsultantAdminResponseDTO(); + ConsultantDTO consultantEmbeded = new ConsultantDTO(); + consultantEmbeded.setFirstname(consultant.getFirstName()); + consultantEmbeded.setLastname(consultant.getLastName()); + consultantEmbeded.setEmail(consultant.getEmail()); + consultantEmbeded.setAbsent(consultant.isAbsent()); + ConsultantAdminResponseDTO.setEmbedded(consultantEmbeded); + updateConsultant(ConsultantAdminResponseDTO); + } + public void updateConsultant(ConsultantAdminResponseDTO consultantAdminResponseDTO) { if (!appointmentFeatureEnabled) { return; diff --git a/src/test/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateServiceTest.java b/src/test/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateServiceTest.java index bf97bbbab..4cd05e8ef 100644 --- a/src/test/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateServiceTest.java +++ b/src/test/java/de/caritas/cob/userservice/api/admin/service/consultant/update/ConsultantUpdateServiceTest.java @@ -15,6 +15,7 @@ import de.caritas.cob.userservice.api.exception.httpresponses.BadRequestException; import de.caritas.cob.userservice.api.model.Consultant; import de.caritas.cob.userservice.api.service.ConsultantService; +import de.caritas.cob.userservice.api.service.appointment.AppointmentService; import java.util.Optional; import org.jeasy.random.EasyRandom; import org.junit.Test; @@ -36,6 +37,8 @@ public class ConsultantUpdateServiceTest { @Mock private RocketChatService rocketChatService; + @Mock private AppointmentService appointmentService; + @Test(expected = BadRequestException.class) public void updateConsultant_Should_throwBadRequestException_When_givenConsultantIdDoesNotExist() {