diff --git a/back/src/controllers/dietController.js b/back/src/controllers/dietController.js index d81b194e26d7381ee2ec6279aef8666cb4cf073c..d9f2021766cf5aba647da7dd143998cf287655a9 100644 --- a/back/src/controllers/dietController.js +++ b/back/src/controllers/dietController.js @@ -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) { diff --git a/front/src/pages/diet/MealRecord.jsx b/front/src/pages/diet/MealRecord.jsx index 638681720064d307de40c000d0b0b5be15e91b53..3b129f334bdaf96efa1194d15c3c3e5b41d3b899 100644 --- a/front/src/pages/diet/MealRecord.jsx +++ b/front/src/pages/diet/MealRecord.jsx @@ -160,24 +160,22 @@ 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]: { - ...prevData[selectedDate], - [meal]: prevData[selectedDate][meal].filter((_, i) => i !== index) - } - })); - } + setData(prevData => ({ + ...prevData, + [selectedDate]: { + ...prevData[selectedDate], + [meal]: prevData[selectedDate][meal].filter((_, i) => i !== index) + } + })); } catch (err) { console.error('Delete error:', err); - alert(err.message || '삭제 중 오류가 발생했습니다.'); + alert('삭제 중 오류가 발생했습니다.'); } }; diff --git a/front/src/pages/diet/api.js b/front/src/pages/diet/api.js index baab8a07b23c97f0952c72a9771c0ea5c2588fef..b3d5cddc75040bb592a62e02a305f6492bce30b8 100644 --- a/front/src/pages/diet/api.js +++ b/front/src/pages/diet/api.js @@ -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) + }) }); };