diff --git a/src/main/java/com/iemr/helpline104/data/users/M_User.java b/src/main/java/com/iemr/helpline104/data/users/M_User.java index 853b147..8f48484 100644 --- a/src/main/java/com/iemr/helpline104/data/users/M_User.java +++ b/src/main/java/com/iemr/helpline104/data/users/M_User.java @@ -95,7 +95,7 @@ public class M_User implements Serializable { @Transient private String newPassword = null; - protected M_User() { + public M_User() { } public M_User(Long userID, Integer titleID, String firstName, String middleName, String lastName, Integer genderID, diff --git a/src/main/java/com/iemr/helpline104/utils/JwtAuthenticationUtil.java b/src/main/java/com/iemr/helpline104/utils/JwtAuthenticationUtil.java index 2f255a0..cdba5a8 100644 --- a/src/main/java/com/iemr/helpline104/utils/JwtAuthenticationUtil.java +++ b/src/main/java/com/iemr/helpline104/utils/JwtAuthenticationUtil.java @@ -104,23 +104,32 @@ private M_User getUserFromCache(String userId) { return user; // Returns null if not found } - private M_User fetchUserFromDB(String userId) { - // This method will only be called if the user is not found in Redis. - String redisKey = "user_" + userId; // Redis key format + private M_User fetchUserFromDB(String userId) { + // This method will only be called if the user is not found in Redis. + String redisKey = "user_" + userId; // Redis key format + + // Fetch user from DB + M_User user = iEMRUserRepositoryCustom.getUserByUserID(Long.parseLong(userId)); + + if (user != null) { + M_User userHash = new M_User(); + userHash.setUserID(user.getUserID()); + userHash.setUserName(user.getUserName()); + + // Cache the minimal user in Redis for future requests (cache for 30 minutes) + redisTemplate.opsForValue().set(redisKey, userHash, 30, TimeUnit.MINUTES); + + // Log that the user has been stored in Redis + logger.info("User stored in Redis with key: " + redisKey); + + return user; + } else { + logger.warn("User not found for userId: " + userId); + } + + return null; + } + - // Fetch user from DB - M_User user = iEMRUserRepositoryCustom.getUserByUserID(Long.parseLong(userId)); - - if (user != null) { - // Cache the user in Redis for future requests (cache for 30 minutes) - redisTemplate.opsForValue().set(redisKey, user, 30, TimeUnit.MINUTES); - - // Log that the user has been stored in Redis - logger.info("User stored in Redis with key: " + redisKey); - } else { - logger.warn("User not found for userId: " + userId); - } - - return user; - } } +