Added possible crypt password, create repository user implementation, etc...
This commit is contained in:
@@ -2,12 +2,13 @@ package repository;
|
||||
|
||||
import models.Task;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface TaskRepository {
|
||||
List<Task> getUserTasks(int userId);
|
||||
List<Task> findUserTasksByTitle(int userId, String title);
|
||||
ArrayList<Task> getUserTasks(int userId);
|
||||
ArrayList<Task> findUserTasksByTitle(int userId, String title);
|
||||
Optional<Task> getUserTask(int userId, int taskId);
|
||||
void save(Task task);
|
||||
void update(int taskId, Task task);
|
||||
|
||||
41
src/main/java/repository/TaskRepositoryJdbc.java
Normal file
41
src/main/java/repository/TaskRepositoryJdbc.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package repository;
|
||||
|
||||
import models.Task;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class TaskRepositoryJdbc implements TaskRepository {
|
||||
|
||||
|
||||
@Override
|
||||
public ArrayList<Task> getUserTasks(int userId) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<Task> findUserTasksByTitle(int userId, String title) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Task> getUserTask(int userId, int taskId) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(Task task) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(int taskId, Task task) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(int taskId) {
|
||||
|
||||
}
|
||||
}
|
||||
11
src/main/java/repository/UserRepository.java
Normal file
11
src/main/java/repository/UserRepository.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package repository;
|
||||
|
||||
import models.User;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public interface UserRepository {
|
||||
Optional<User> getUser(String username, String password);
|
||||
Optional<User> saveUser(String username, String email, String password);
|
||||
boolean deleteUser(int userId);
|
||||
}
|
||||
85
src/main/java/repository/UserRepositoryJdbc.java
Normal file
85
src/main/java/repository/UserRepositoryJdbc.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package repository;
|
||||
|
||||
import models.User;
|
||||
import org.flywaydb.core.internal.proprietaryStubs.PrepareCommandExtensionStub;
|
||||
import util.PasswordService;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Optional;
|
||||
|
||||
public class UserRepositoryJdbc implements UserRepository {
|
||||
|
||||
private final Connection connection;
|
||||
|
||||
public UserRepositoryJdbc(Connection connection) {
|
||||
this.connection = connection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<User> getUser(String username, String password) {
|
||||
try {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(
|
||||
"SELECT * FROM users WHERE name=(?);"
|
||||
);
|
||||
|
||||
preparedStatement.setString(1, username);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
String passwordFromDB = resultSet.getString("password");
|
||||
String emailFromDB = resultSet.getString("email");
|
||||
if (!PasswordService.checkPassword(password, passwordFromDB)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
User user = new User(username, emailFromDB);
|
||||
|
||||
return Optional.of(user);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<User> saveUser(String username, String email, String password) {
|
||||
try {
|
||||
String hashedPassword = PasswordService.hashPassword(password);
|
||||
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(
|
||||
"INSERT INTO users (name, email, password) VALUES (?, ?, ?);"
|
||||
);
|
||||
|
||||
preparedStatement.setString(1, username);
|
||||
preparedStatement.setString(2, email);
|
||||
preparedStatement.setString(3, hashedPassword);
|
||||
preparedStatement.executeUpdate();
|
||||
|
||||
User user = new User(username, email);
|
||||
return Optional.of(user);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteUser(int userId) {
|
||||
try {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(
|
||||
"DELETE FROM users WHERE id=(?);"
|
||||
);
|
||||
|
||||
preparedStatement.setInt(1, userId);
|
||||
preparedStatement.executeUpdate();
|
||||
|
||||
return true;
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package repository.impl;
|
||||
|
||||
import repository.TaskRepository;
|
||||
|
||||
public class TaskRepositoryImpl {
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user