From 2e51000fd3f776346bc7f4c22cd3d5b2db441198 Mon Sep 17 00:00:00 2001
From: nivetha <nivetha.mariappan@tarento.com>
Date: Mon, 11 Apr 2022 10:45:44 +0530
Subject: [PATCH] Fixed issue with updating device token

---
 .../com/tarento/retail/controller/UserController.java |  2 ++
 src/main/java/com/tarento/retail/dao/UserDao.java     |  2 ++
 .../java/com/tarento/retail/dao/impl/UserDaoImpl.java | 11 +++++++++++
 .../java/com/tarento/retail/service/UserService.java  |  2 ++
 .../tarento/retail/service/impl/UserServiceImpl.java  |  5 +++++
 src/main/java/com/tarento/retail/util/Sql.java        |  1 +
 6 files changed, 23 insertions(+)

diff --git a/src/main/java/com/tarento/retail/controller/UserController.java b/src/main/java/com/tarento/retail/controller/UserController.java
index 787f013..a1c8b85 100644
--- a/src/main/java/com/tarento/retail/controller/UserController.java
+++ b/src/main/java/com/tarento/retail/controller/UserController.java
@@ -211,6 +211,8 @@ public class UserController {
 		Gson gson = new GsonBuilder().setPrettyPrinting().create();
 		User thisUser = gson.fromJson(xUserInfo, User.class);
 		if (userService.checkUserTokenExists(thisUser.getId(), deviceToken.getDeviceToken())) {
+			Long authTokenRef = userService.fetchAuthTokenReference(thisUser.getAuthToken());
+			userService.updateDeviceAuthRef(thisUser.getId(), deviceToken.getDeviceToken(), authTokenRef);
 			return ResponseGenerator.successResponse("Success");
 		}
 		Long authTokenRef = userService.fetchAuthTokenReference(thisUser.getAuthToken());
diff --git a/src/main/java/com/tarento/retail/dao/UserDao.java b/src/main/java/com/tarento/retail/dao/UserDao.java
index ed4f3f0..b9a674b 100644
--- a/src/main/java/com/tarento/retail/dao/UserDao.java
+++ b/src/main/java/com/tarento/retail/dao/UserDao.java
@@ -264,4 +264,6 @@ public interface UserDao {
 
 	public Boolean deleteDeviceToken(Long userId, String deviceId);
 
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId);
+
 }
diff --git a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
index a20161e..c7e2dfd 100644
--- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
+++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
@@ -1025,4 +1025,15 @@ public class UserDaoImpl implements UserDao {
 		}
 		return Boolean.FALSE;
 	}
+
+	@Override
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId) {
+		try {
+			jdbcTemplate.update(UserQueries.UPDATE_DEVICE_AUTH_REF, new Object[] { authId, userId, deviceToken });
+			return Boolean.TRUE;
+		} catch (Exception e) {
+			LOGGER.error(String.format(Constants.EXCEPTION_METHOD, "updateDeviceAuthRef", e.getMessage()));
+		}
+		return Boolean.FALSE;
+	}
 }
diff --git a/src/main/java/com/tarento/retail/service/UserService.java b/src/main/java/com/tarento/retail/service/UserService.java
index bad0433..0bf7e78 100644
--- a/src/main/java/com/tarento/retail/service/UserService.java
+++ b/src/main/java/com/tarento/retail/service/UserService.java
@@ -243,4 +243,6 @@ public interface UserService {
 
 	public Boolean deleteDeviceToken(Long userId, String deviceId);
 
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId);
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
index bbff912..12b64ee 100644
--- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
@@ -612,4 +612,9 @@ public class UserServiceImpl implements UserDetailsService, UserService {
 		return userDao.deleteDeviceToken(userId, deviceId);
 	}
 
+	@Override
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId) {
+		return userDao.updateDeviceAuthRef(userId, deviceToken, authId);
+	}
+
 }
diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java
index 7da9170..480a4ed 100644
--- a/src/main/java/com/tarento/retail/util/Sql.java
+++ b/src/main/java/com/tarento/retail/util/Sql.java
@@ -149,6 +149,7 @@ public interface Sql {
 		final String INSERT_USER_DEVICE_TOKEN = "INSERT INTO user_device (user_id, device_token, device_id, created_date, user_auth_id) VALUES (?,?,?,?,?) ";
 		final String UPDATE_USER_DEVICE_TOKEN = "UPDATE user_device SET device_token = ?, created_date = ? WHERE user_id = ? ";
 		final String FETCH_USER_DEVICE_TOKEN = " SELECT device.id, device.user_id, device.device_token, auth_token FROM user_device device, user_authentication WHERE device.user_auth_id = user_authentication.id AND device.user_id IN ";
+		final String UPDATE_DEVICE_AUTH_REF = "UPDATE user_device SET user_auth_id= ? WHERE user_id= ? and device_token= ?";
 		final String USER_DEVICE_ROLE_CONDITION = " and exists (select 1 from user_role where user_id = device.user_id and role_id IN (1,2)) "
 				+ "and not exists (select 1 from user_role where user_id = device.user_id and role_id NOT IN (1,2)) ";
 		final String FETCH_AUTH_TOKEN_REF = "SELECT id FROM user_authentication WHERE auth_token = ? ";
-- 
GitLab