Added some logic to Task, found bug...
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package repository;
|
||||
|
||||
import dto.TaskCreateDto;
|
||||
import dto.TaskUpdateDto;
|
||||
import models.Task;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -14,6 +15,6 @@ public interface TaskRepository {
|
||||
ArrayList<Task> getUserTasks(String title);
|
||||
Optional<Task> getUserTask(int taskId);
|
||||
Optional<Task> save(TaskCreateDto taskCreateDto);
|
||||
Optional<Task> update(int taskId, String title, String description);
|
||||
Optional<Task> update(TaskUpdateDto taskUpdateDto);
|
||||
boolean delete(int taskId);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
package repository;
|
||||
|
||||
import dto.TaskCreateDto;
|
||||
import dto.TaskUpdateDto;
|
||||
import models.Task;
|
||||
import models.User;
|
||||
import util.Session;
|
||||
|
||||
import javax.imageio.plugins.jpeg.JPEGImageReadParam;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Optional;
|
||||
@@ -37,11 +34,14 @@ public class TaskRepositoryJdbc implements TaskRepository {
|
||||
ArrayList<Task> tasks = new ArrayList<>();
|
||||
|
||||
while (resultSet.next()) {
|
||||
Task.Status status = Task.Status.valueOf(resultSet.getString("status"));
|
||||
|
||||
Task task = new Task(
|
||||
resultSet.getInt("id"),
|
||||
resultSet.getString("title"),
|
||||
resultSet.getString("description"),
|
||||
status,
|
||||
resultSet.getTimestamp("deadline"),
|
||||
resultSet.getTimestamp("created_at"),
|
||||
user
|
||||
);
|
||||
@@ -74,11 +74,14 @@ public class TaskRepositoryJdbc implements TaskRepository {
|
||||
ArrayList<Task> tasks = new ArrayList<>();
|
||||
|
||||
while (resultSet.next()) {
|
||||
Task.Status status = Task.Status.valueOf(resultSet.getString("status"));
|
||||
|
||||
Task task = new Task(
|
||||
resultSet.getInt("id"),
|
||||
resultSet.getString("title"),
|
||||
resultSet.getString("description"),
|
||||
status,
|
||||
resultSet.getTimestamp("deadline"),
|
||||
resultSet.getTimestamp("created_at"),
|
||||
user
|
||||
);
|
||||
@@ -110,11 +113,14 @@ public class TaskRepositoryJdbc implements TaskRepository {
|
||||
ArrayList<Task> tasks = new ArrayList<>();
|
||||
|
||||
while (resultSet.next()) {
|
||||
Task.Status status = Task.Status.valueOf(resultSet.getString("status"));
|
||||
|
||||
Task task = new Task(
|
||||
resultSet.getInt("id"),
|
||||
resultSet.getString("title"),
|
||||
resultSet.getString("description"),
|
||||
status,
|
||||
resultSet.getTimestamp("deadline"),
|
||||
resultSet.getTimestamp("created_at"),
|
||||
user
|
||||
);
|
||||
@@ -144,10 +150,14 @@ public class TaskRepositoryJdbc implements TaskRepository {
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
if (resultSet.next()) {
|
||||
Task.Status status = Task.Status.valueOf(resultSet.getString("status"));
|
||||
|
||||
Task task = new Task(
|
||||
resultSet.getInt("id"),
|
||||
resultSet.getString("title"),
|
||||
resultSet.getString("description"),
|
||||
status,
|
||||
resultSet.getTimestamp("deadline"),
|
||||
resultSet.getTimestamp("created_at"),
|
||||
user
|
||||
);
|
||||
@@ -166,22 +176,36 @@ public class TaskRepositoryJdbc implements TaskRepository {
|
||||
public Optional<Task> save(TaskCreateDto taskCreateDto) {
|
||||
try {
|
||||
User user = Session.getInstance().getUser();
|
||||
if (user == null) Optional.empty();
|
||||
if (user == null) return Optional.empty();
|
||||
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(
|
||||
"INSERT INTO tasks (title, description, deadline) VALUES (?, ?, ?) RETURNING id, created_at"
|
||||
"INSERT INTO tasks (title, description, status, deadline) VALUES (?, ?, ?, ?) RETURNING id, created_at"
|
||||
);
|
||||
|
||||
preparedStatement.setString(1, taskCreateDto.title());
|
||||
preparedStatement.setString(2, taskCreateDto.description());
|
||||
preparedStatement.setDate(3, (java.sql.Date) taskCreateDto.deadline());
|
||||
preparedStatement.setObject(3, taskCreateDto.status().name(), Types.OTHER);
|
||||
|
||||
Date deadline = taskCreateDto.deadline();
|
||||
if (deadline != null) {
|
||||
preparedStatement.setDate(4, new java.sql.Date(deadline.getTime()));
|
||||
} else {
|
||||
preparedStatement.setNull(4, java.sql.Types.DATE);
|
||||
}
|
||||
|
||||
System.out.println(preparedStatement);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
System.out.println(resultSet);
|
||||
|
||||
if (resultSet.next()) {
|
||||
System.out.println(resultSet.getString("id"));
|
||||
|
||||
Task task = new Task(
|
||||
resultSet.getInt("id"),
|
||||
taskCreateDto.title(),
|
||||
taskCreateDto.description(),
|
||||
taskCreateDto.status(),
|
||||
taskCreateDto.deadline(),
|
||||
resultSet.getTimestamp("created_at"),
|
||||
user
|
||||
);
|
||||
@@ -197,27 +221,36 @@ public class TaskRepositoryJdbc implements TaskRepository {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Task> update(int taskId, String title, String description) {
|
||||
public Optional<Task> update(TaskUpdateDto taskUpdateDto) {
|
||||
try {
|
||||
User user = Session.getInstance().getUser();
|
||||
if (user == null) Optional.empty();
|
||||
if (user == null) return Optional.empty();
|
||||
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(
|
||||
"UPDATE tasks SET title=?, description=? WHERE id=? AND user_id=(?) RETURNING id, created_at;"
|
||||
"UPDATE tasks SET title=?, description=?, status=?, deadline=? WHERE id=? AND user_id=(?) RETURNING id, created_at;"
|
||||
);
|
||||
|
||||
preparedStatement.setString(1, title);
|
||||
preparedStatement.setString(2, description );
|
||||
preparedStatement.setInt(3, taskId);
|
||||
preparedStatement.setInt(4, user.id());
|
||||
preparedStatement.setString(1, taskUpdateDto.title());
|
||||
preparedStatement.setString(2, taskUpdateDto.description());
|
||||
preparedStatement.setObject(3, taskUpdateDto.status().name(), Types.OTHER);
|
||||
Date deadline = taskUpdateDto.deadline();
|
||||
if (deadline != null) {
|
||||
preparedStatement.setDate(4, new java.sql.Date(deadline.getTime()));
|
||||
} else {
|
||||
preparedStatement.setNull(4, java.sql.Types.DATE);
|
||||
}
|
||||
preparedStatement.setInt(5, taskUpdateDto.id());
|
||||
preparedStatement.setInt(6, user.id());
|
||||
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
|
||||
if (resultSet.next()) {
|
||||
Task task = new Task(
|
||||
resultSet.getInt("id"),
|
||||
title,
|
||||
description,
|
||||
taskUpdateDto.title(),
|
||||
taskUpdateDto.description(),
|
||||
taskUpdateDto.status(),
|
||||
taskUpdateDto.deadline(),
|
||||
resultSet.getTimestamp("created_at"),
|
||||
user
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user