From 2976984402cca3e53da83e70218485d65f127708 Mon Sep 17 00:00:00 2001 From: piyushkag Date: Mon, 24 Mar 2025 19:29:43 +0530 Subject: [PATCH] Done ticket GEPAFINBE-192 Fixed NDG in-progress response case and updated status code to 200. --- .../config/NdgStatusResetHandler.java | 19 +++++++++++++++++++ .../tendermanagement/dao/AppointmentDao.java | 3 ++- .../repositories/ApplicationRepository.java | 7 +++++++ .../rest/api/impl/AppointmentController.java | 5 ++++- 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/main/java/net/gepafin/tendermanagement/config/NdgStatusResetHandler.java diff --git a/src/main/java/net/gepafin/tendermanagement/config/NdgStatusResetHandler.java b/src/main/java/net/gepafin/tendermanagement/config/NdgStatusResetHandler.java new file mode 100644 index 00000000..0e642669 --- /dev/null +++ b/src/main/java/net/gepafin/tendermanagement/config/NdgStatusResetHandler.java @@ -0,0 +1,19 @@ +package net.gepafin.tendermanagement.config; + +import jakarta.annotation.PostConstruct; +import net.gepafin.tendermanagement.constants.GepafinConstant; +import net.gepafin.tendermanagement.repositories.ApplicationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class NdgStatusResetHandler { + + @Autowired + private ApplicationRepository applicationRepository; + + @PostConstruct + public void resetNdgStatusOnStartup() { + applicationRepository.resetNdgStatusForInProgress(GepafinConstant.NDG_IN_PROGRESS); + } +} diff --git a/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java b/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java index 5a8ee2be..8bb955f4 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java @@ -171,8 +171,9 @@ public class AppointmentDao { HubEntity hub = hubRepository.findByHubId(application.getHubId()); loginToOdessa(hub, application); startAsyncNdgProcessing(applicationId); - throw new CustomValidationException(Status.SUCCESS, Translator.toLocale(GepafinConstant.NDG_GENERATION_IS_IN_PROGRESS)); + return ndgResponse; } + private HubEntity loginToOdessa(HubEntity hub, ApplicationEntity application) { try { //code to generate token with payload having "iat" epoch timestamp and secret key with no expiry and send in below method call diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java index 3b817314..b4fdfcaf 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/ApplicationRepository.java @@ -1,8 +1,10 @@ package net.gepafin.tendermanagement.repositories; +import jakarta.transaction.Transactional; import net.gepafin.tendermanagement.entities.ApplicationEntity; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -170,4 +172,9 @@ public interface ApplicationRepository extends JpaRepository(appointmentLoginResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.NDG_FETCH_SUCCESSFULLY))); + // Determine the appropriate message + String responseMessage = (appointmentLoginResponse.getNdg() == null) ? Translator.toLocale(GepafinConstant.NDG_GENERATION_IS_IN_PROGRESS) : Translator.toLocale(GepafinConstant.NDG_FETCH_SUCCESSFULLY); + // Return response immediately with 200 OK + return ResponseEntity.status(HttpStatus.OK).body(new Response<>(appointmentLoginResponse, Status.SUCCESS, responseMessage)); } @Override