diff --git a/src/main/java/com/tarento/retail/controller/UserController.java b/src/main/java/com/tarento/retail/controller/UserController.java index 502c7903c688c462d8df8988aa8c1642b1a7acf1..787f0132b9a9444f6ec8fb23d1dce83ff44e9a78 100644 --- a/src/main/java/com/tarento/retail/controller/UserController.java +++ b/src/main/java/com/tarento/retail/controller/UserController.java @@ -587,4 +587,16 @@ public class UserController { return ResponseGenerator.failureResponse("Check your request params"); } + @RequestMapping(value = PathRoutes.UserRoutes.DELETE_USER_DEVICE_TOKEN, method = RequestMethod.DELETE) + public String deleteDeviceToken(@RequestParam String deviceId, + @RequestHeader(value = "x-user-info", required = true) String xUserInfo) throws JsonProcessingException { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + User thisUser = gson.fromJson(xUserInfo, User.class); + + Boolean response = userService.deleteDeviceToken(thisUser.getId(), deviceId); + if (response) + return ResponseGenerator.successResponse("Success"); + + return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString()); + } } diff --git a/src/main/java/com/tarento/retail/dao/UserDao.java b/src/main/java/com/tarento/retail/dao/UserDao.java index 42273d346ede51dc478d9d225f766a01ee0f45c5..ed4f3f0c167bca7fda4c0a2d23b4df6d595530ee 100644 --- a/src/main/java/com/tarento/retail/dao/UserDao.java +++ b/src/main/java/com/tarento/retail/dao/UserDao.java @@ -262,4 +262,6 @@ public interface UserDao { public Boolean validateUserPin(int pin, String username); + public Boolean deleteDeviceToken(Long userId, String deviceId); + } 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 35265205e9b3040f4ba020f3266f9920312dd694..a20161ed8d175ad64997d7fa88f50f7b7d2a802e 100644 --- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java +++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java @@ -1014,4 +1014,15 @@ public class UserDaoImpl implements UserDao { } return Boolean.FALSE; } + + @Override + public Boolean deleteDeviceToken(Long userId, String deviceId) { + try { + jdbcTemplate.update(UserQueries.DELETE_DEVICE_TOKEN, new Object[] { userId, deviceId }); + return Boolean.TRUE; + } catch (Exception e) { + LOGGER.error(String.format(Constants.EXCEPTION_METHOD, "deleteDeviceToken", 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 6a65f8530bcadfac0a3fb7e45ff12965351daf85..bad0433a811d6fb690715e8ee9355f4f787b8993 100644 --- a/src/main/java/com/tarento/retail/service/UserService.java +++ b/src/main/java/com/tarento/retail/service/UserService.java @@ -241,4 +241,6 @@ public interface UserService { public Boolean validateUserPin(String username, int pin); + public Boolean deleteDeviceToken(Long userId, String deviceId); + } \ 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 e4dfcad95601a7033f9d0e6874c7fcba43bad803..bbff912c3264d63ead68a5831fa4c6b16bef97b4 100644 --- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java +++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java @@ -607,4 +607,9 @@ public class UserServiceImpl implements UserDetailsService, UserService { return userDao.validateUserPin(pin, username); } + @Override + public Boolean deleteDeviceToken(Long userId, String deviceId) { + return userDao.deleteDeviceToken(userId, deviceId); + } + } diff --git a/src/main/java/com/tarento/retail/util/PathRoutes.java b/src/main/java/com/tarento/retail/util/PathRoutes.java index aed37d701583197bf5d54fd262f6955cab0b7381..697fc848a2817d946a3df174ee03ffdbdce09478 100644 --- a/src/main/java/com/tarento/retail/util/PathRoutes.java +++ b/src/main/java/com/tarento/retail/util/PathRoutes.java @@ -41,6 +41,7 @@ public interface PathRoutes { final String NUMBER_OF_USERS_ROLES_GET = "/getNumberOfUsersAndRoles"; final String GET_USER_DEVICE_TOKEN = "getDeviceTokenForUserIds"; final String GENERATE_PIN = "/generatePin"; + final String DELETE_USER_DEVICE_TOKEN = "/deleteDeviceToken"; } public interface AuthenticationRoutes { diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java index da91a8b156988a0aef534b9acbae56df9ae2ed5c..7da9170dd662a76e27d8b9dea53d7a8bb58f79b8 100644 --- a/src/main/java/com/tarento/retail/util/Sql.java +++ b/src/main/java/com/tarento/retail/util/Sql.java @@ -178,6 +178,7 @@ public interface Sql { final String GET_NUMBER_USER_ROLES = "SELECT count(*) as 'numberOfUsers', r.role_name as 'roleName' from user usr LEFT JOIN user_role ur ON usr.id = ur.user_id LEFT JOIN role r ON ur.role_id = r.id where r.id > 2090 group by r.role_name "; final String SET_USER_PIN = "UPDATE user SET pin=? WHERE id= ?"; final String GET_USER_PIN = "SELECT pin FROM user where username = ?"; + final String DELETE_DEVICE_TOKEN = "DELETE FROM user_device WHERE user_id= ? AND device_id =?"; } public interface NamedUserQueries {