From 7b0e9b57b2c7cc5f2da1d82f4a79c8bf29a9defa Mon Sep 17 00:00:00 2001 From: rajesh Date: Thu, 5 Jun 2025 16:33:54 +0530 Subject: [PATCH] Updated code for visura response and added logs for better tracking. --- .../tendermanagement/dao/AppointmentDao.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java b/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java index b8507b3a..1589a045 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/AppointmentDao.java @@ -770,19 +770,28 @@ public class AppointmentDao { public AppointmentLoginResponse parseVisuraResponse(String jsonResponse) { try { + // Log full raw JSON for debug purposes + log.info("Raw Visura JSON Response: {}", jsonResponse); ObjectMapper objectMapper = new ObjectMapper(); JsonNode rootNode = objectMapper.readTree(jsonResponse); JsonNode dataNode = rootNode.get(GepafinConstant.DATA_STRING); - if (dataNode != null) { + if (dataNode != null && dataNode.isObject()) { AppointmentLoginResponse response = new AppointmentLoginResponse(); - response.setIdVisura(normalizeNullValue(dataNode.get(GepafinConstant.ID_VISURA_STRING).asText())); - response.setNdg(normalizeNullValue(dataNode.get(GepafinConstant.NDG_STRING).asText())); + JsonNode idVisuraNode = dataNode.get(GepafinConstant.ID_VISURA_STRING); + JsonNode ndgNode = dataNode.get(GepafinConstant.NDG_STRING); + if (idVisuraNode == null || ndgNode == null) { + log.error("Missing expected fields in 'data' node. JSON: {}", dataNode); + } + response.setIdVisura(normalizeNullValue(idVisuraNode != null ? idVisuraNode.asText() : null)); + response.setNdg(normalizeNullValue(ndgNode != null ? ndgNode.asText() : null)); return response; } else { - throw new RuntimeException("Invalid JSON structure: Missing 'data' node."); + System.err.println("Invalid JSON: 'data' node is missing or not an object."); + throw new RuntimeException("Invalid JSON structure: Missing or malformed 'data' node."); } } catch (Exception e) { + System.err.println("Exception while parsing Visura response: " + e.getMessage()); throw new RuntimeException("Failed to parse response: " + e.getMessage(), e); } }