Skip to content

Commit b102df9

Browse files
committed
Refactor services
1 parent 51ed34b commit b102df9

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

src/main/java/com/example/tasklist/repository/TaskRepository.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.example.tasklist.domain.task.Task;
44
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Modifying;
56
import org.springframework.data.jpa.repository.Query;
67
import org.springframework.data.repository.query.Param;
78

@@ -16,4 +17,18 @@ public interface TaskRepository extends JpaRepository<Task, Long> {
1617
""", nativeQuery = true)
1718
List<Task> findAllByUserId(@Param("userId") Long userId);
1819

20+
@Modifying
21+
@Query(value = """
22+
INSERT INTO users_tasks (user_id, task_id)
23+
VALUES (:userId, :taskId)
24+
""", nativeQuery = true)
25+
void assignTask(@Param("userId") Long userId, @Param("taskId") Long taskId);
26+
27+
@Modifying
28+
@Query(value = """
29+
INSERT INTO tasks_images (task_id, image)
30+
VALUES (:id, :fileName)
31+
""", nativeQuery = true)
32+
void addImage(@Param("id") Long id, @Param("fileName") String fileName);
33+
1934
}

src/main/java/com/example/tasklist/service/impl/TaskServiceImpl.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@
44
import com.example.tasklist.domain.task.Status;
55
import com.example.tasklist.domain.task.Task;
66
import com.example.tasklist.domain.task.TaskImage;
7-
import com.example.tasklist.domain.user.User;
87
import com.example.tasklist.repository.TaskRepository;
98
import com.example.tasklist.service.ImageService;
109
import com.example.tasklist.service.TaskService;
11-
import com.example.tasklist.service.UserService;
1210
import lombok.RequiredArgsConstructor;
1311
import org.springframework.cache.annotation.CacheEvict;
1412
import org.springframework.cache.annotation.CachePut;
@@ -23,7 +21,6 @@
2321
public class TaskServiceImpl implements TaskService {
2422

2523
private final TaskRepository taskRepository;
26-
private final UserService userService;
2724
private final ImageService imageService;
2825

2926
@Override
@@ -58,11 +55,9 @@ public Task update(final Task task) {
5855
condition = "#task.id!=null",
5956
key = "#task.id")
6057
public Task create(final Task task, final Long userId) {
61-
User user = userService.getById(userId);
6258
task.setStatus(Status.TODO);
6359
taskRepository.save(task);
64-
user.getTasks().add(task);
65-
userService.update(user);
60+
taskRepository.assignTask(userId, task.getId());
6661
return task;
6762
}
6863

@@ -77,10 +72,8 @@ public void delete(final Long id) {
7772
@Transactional
7873
@CacheEvict(value = "TaskService::getById", key = "#id")
7974
public void uploadImage(final Long id, final TaskImage image) {
80-
Task task = getById(id);
8175
String fileName = imageService.upload(image);
82-
task.getImages().add(fileName);
83-
taskRepository.save(task);
76+
taskRepository.addImage(id, fileName);
8477
}
8578

8679
}

src/main/java/com/example/tasklist/service/impl/UserServiceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class UserServiceImpl implements UserService {
2424
private final PasswordEncoder passwordEncoder;
2525

2626
@Override
27+
@Transactional(readOnly = true)
2728
@Cacheable(value = "UserService::getById", key = "#id")
2829
public User getById(final Long id) {
2930
return userRepository.findById(id)

0 commit comments

Comments
 (0)