반응형
package org.example.service;
import lombok.AllArgsConstructor;
import org.example.model.TodoEntity;
import org.example.model.TodoRequest;
import org.example.repository.TodoRepository;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException;
import java.util.List;
@Service
@AllArgsConstructor
public class TodoService {
private final TodoRepository todoRepository;
// 1. todo 리스트 목록에 아이템을 추가
public TodoEntity add(TodoRequest request) {
TodoEntity todoEntity = new TodoEntity();
todoEntity.setTitle(request.getTitle());
todoEntity.setOrder(request.getOrder());
todoEntity.setCompleted(request.getCompleted());
TodoEntity entity = this.todoRepository.save(todoEntity);
return entity;
}
// 2. todo 리스트 목록 중 특정 아이템을 조회
public TodoEntity searchById(Long id){
// 값이 없으면 not found 처리
return this.todoRepository.findById(id)
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND));
}
// 3. todo 리스트 전체 목록을 조회
public List<TodoEntity> searchAll(){
return this.todoRepository.findAll();
}
// 4. todo 리스트 목록 중 특정 아이템을 수정
public TodoEntity updateById(Long id, TodoRequest request) {
TodoEntity todoEntity = this.searchById(id);
if (request.getTitle() != null) {
todoEntity.setTitle(request.getTitle());
}
if (request.getOrder() != null) {
todoEntity.setOrder(request.getOrder());
}
if (request.getCompleted() != null) {
todoEntity
.setCompleted(request.getCompleted());
}
return this.todoRepository.save(todoEntity);
}
// 5. todo 리스트 목록 중 특정 아이템을 삭제
public void deleteById(Long id) {
this.todoRepository.deleteById(id);
}
// 6. todo 리스트 전체 목록을 삭제
public void deleteAll(){
this.todoRepository.deleteAll();
}
}
반응형
'IntelliJ' 카테고리의 다른 글
테스트 코드 작성 (0) | 2021.06.05 |
---|---|
TodoList 구현 (컨트롤러 구현) (0) | 2021.05.30 |
TodoList 구현 (repository 구현) (0) | 2021.05.30 |
TodoList 구현 (모델) (0) | 2021.05.30 |
인텔리제이 시작 (0) | 2021.05.30 |