From 97e394566db131602d7bdf2cb1ca7f7abc516aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D0=BB?= <119668441+Jiga228@users.noreply.github.com> Date: Thu, 22 May 2025 22:57:20 +0700 Subject: [PATCH] Fix bug with rewrite password for user and refactor --- .../TaskTraker_Server/Repository/DataBase.java | 3 ++- .../TaskTraker_Server/Repository/UserRepository.java | 12 ++++++++++++ .../TaskTrakerServerApplication.java | 9 +++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java b/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java index 6485a45..79a0e68 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java @@ -119,7 +119,8 @@ public class DataBase { PreparedStatement getUser_stmt = connection.prepareStatement("SELECT * FROM user WHERE login = ?"); getUser_stmt.setString(1, login); ResultSet resultSet = getUser_stmt.executeQuery(); - resultSet.next(); + if(!resultSet.next()) + return null; int id = resultSet.getInt(1); String pass = resultSet.getNString(3); diff --git a/src/main/java/com/Samsung/TaskTraker_Server/Repository/UserRepository.java b/src/main/java/com/Samsung/TaskTraker_Server/Repository/UserRepository.java index dd8e7c8..58b2420 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/Repository/UserRepository.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/Repository/UserRepository.java @@ -9,6 +9,8 @@ public class UserRepository { private final List UserCache = new ArrayList<>(); + private UserRepository() {} + public static synchronized UserRepository getRepository() { if (instance == null) { instance = new UserRepository(); @@ -17,6 +19,16 @@ public class UserRepository { } public User AddUser(String login, String password) throws SQLException { + for (User i : UserCache) { + if(i.getLogin().equals(login)) { + return null; + } + } + + User find = DataBase.getInstance().FindUser(login); + if(find != null) + return null; + User user = new User(0, login, password); DataBase.getInstance().SaveUser(user); diff --git a/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java b/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java index a30cddc..7511c18 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/TaskTrakerServerApplication.java @@ -67,10 +67,15 @@ public class TaskTrakerServerApplication { String SingUp(@RequestParam(name = "login", defaultValue = "null") String login, @RequestParam(name = "password", defaultValue = "null") String pass) { if (login.length() > 20 || pass.length() > 20) return "{\n\t\"status\":\"big\",\n\t\"token\":\"null\"\n}"; - if (login.equals("null") || pass.equals("null")) + else if(login.isEmpty() || pass.isEmpty()) + return "{\n\t\"status\":\"small\",\n\t\"token\":\"null\"\n}"; + else if (login.equals("null") || pass.equals("null")) return "{\n\t\"status\":\"error\",\n\t\"token\":\"null\"\n}"; try { - User token = UserRepository.getRepository().AddUser(login, pass); + User user = UserRepository.getRepository().AddUser(login, pass); + if(user == null) + return "{\n\t\"status\":\"error\"\n}"; + return "{\n\t\"status\":\"ok\"\n}"; } catch (SQLException e) { return "{\n\t\"status\":\"error\"\n}";