//순서 바꾸기 : 자기(todo) order를 위 아래로 이동할 때
//이동할 자리가 비었으면? 그냥 그 order로 저장.
//이동할 자리에 다른 targetTodo가 있으면, 걔의 order(targetTodo.order)를 자신의 order(todo.order) 로 바꾸기
router.patch("/todos/:todoId", async (req,res)=> {
const {todoId} = req.params;
const {order} = req.body;
const currentTodo = await Todo.findById(todoId).exec();
if(!currentTodo){
throw new Error("존재하지 않는 todo 데이터입니다.")
}
if(order){
const targetTodo = await Todo.findOne({order}).exec()
if (targetTodo){
targetTodo.order = currentTodo.order;
//이동할 자리에 다른 targetTodo가 있으면, 걔의 order(targetTodo.order)를 자신의 order(todo.order) 로 바꾸기
await targetTodo.save()
}
currentTodo.order = order; //이동할 자리가 비었으면? 그냥 그 order로 저장.
await currentTodo.save();
}
res.send({}); //그냥 순서바꾸면 끝이라 response로 뭘 보낼 필요는 없지만.
//response가 없으면 클라이언트는 계속 로딩하다가 에러. 아무 의미 없어도 뭘 보내긴 해야함.
})