Skip to content
Snippets Groups Projects
Commit f7c604ff authored by 문경호's avatar 문경호
Browse files

Fix: Fix removal logic

parent e0e95304
Branches feat/diet-merged
No related tags found
No related merge requests found
......@@ -188,7 +188,7 @@ const dietController = {
);
if (existingFoodIndex !== -1) {
// 이�� 존재하는 음식이면 그램수 업데이트
// 이 존재하는 음식이면 그램수 업데이트
targetDiet.meals[mealtime][existingFoodIndex].grams = grams;
} else {
// 새로운 음식 추가
......@@ -231,14 +231,6 @@ const dietController = {
});
}
// mealtime 유효성 검사
if (!['breakfast', 'lunch', 'dinner'].includes(mealtime)) {
return res.status(400).json({
status: 'error',
message: '잘못된 식사 시간입니다.'
});
}
// 해당 날짜의 사용자 식단 찾기
const userDiet = await UserDiet.findOne({
user_id,
......@@ -254,7 +246,7 @@ const dietController = {
// 해당 날짜의 diet 찾기
const dietIndex = userDiet.diets.findIndex(
diet => diet.date.getTime() === new Date(date).getTime()
diet => diet.date.toISOString().split('T')[0] === new Date(date).toISOString().split('T')[0]
);
if (dietIndex === -1) {
......@@ -267,7 +259,7 @@ const dietController = {
// 해당 음식 찾기 및 삭제
const targetDiet = userDiet.diets[dietIndex];
const foodIndex = targetDiet.meals[mealtime].findIndex(
meal => meal.food_id === food_id
meal => meal.food_id.toString() === food_id.toString()
);
if (foodIndex === -1) {
......@@ -280,7 +272,7 @@ const dietController = {
// 음식 삭제
targetDiet.meals[mealtime].splice(foodIndex, 1);
// 해당 식사 시간 음식이 모두 비었고, 다른 식사 시간도 비어있다면 해당 날짜 전체 삭제
// 해당 식사 시간 음식이 모두 비었고, 다른 식사 시간도 비어있다면 해당 날짜 전체 삭제
if (targetDiet.meals[mealtime].length === 0 &&
targetDiet.meals.breakfast.length === 0 &&
targetDiet.meals.lunch.length === 0 &&
......@@ -297,12 +289,7 @@ const dietController = {
res.json({
status: 'success',
message: '식단이 삭제되었습니다.',
data: {
date,
mealtime,
food_id
}
message: '식단이 삭제되었습니다.'
});
} catch (error) {
......
......@@ -160,13 +160,12 @@ function MealRecord({ diet }) {
try {
const foodToDelete = data[selectedDate][meal][index];
const response = await deleteDiet({
await deleteDiet({
date: selectedDate,
mealtime: meal,
food_id: foodToDelete.food_id
});
if (response.status === 'success') {
setData(prevData => ({
...prevData,
[selectedDate]: {
......@@ -174,10 +173,9 @@ function MealRecord({ diet }) {
[meal]: prevData[selectedDate][meal].filter((_, i) => i !== index)
}
}));
}
} catch (err) {
console.error('Delete error:', err);
alert(err.message || '삭제 중 오류가 발생했습니다.');
alert('삭제 중 오류가 발생했습니다.');
}
};
......
......@@ -101,17 +101,17 @@ const createDiet = async ({ date, mealtime, food_id, grams }) => {
};
const deleteDiet = async ({ date, mealtime, food_id }) => {
return await fetchWithOptions(URL, {
return await fetchWithOptions(`${URL}/`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${localStorage.getItem('accessToken')}`
},
body: JSON.stringify({
date: date,
mealtime: mealtime,
food_id: food_id
}),
date,
mealtime,
food_id: Number(food_id)
})
});
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment