[EDIT] 目標の一覧を受け取るように修正・作成と削除機能の追加

This commit is contained in:
s-choi
2026-09-24 14:09:22 +09:00
parent 76e3fc2345
commit 918b7f7218
3 changed files with 51 additions and 12 deletions

View File

@@ -13,6 +13,8 @@ public interface GoalService {
public GoalModel createGoal(GoalModel goalModel, Long userId);
GoalModel updateGoal(GoalModel goalModel, Long userId);
public void delete(Long goalId);
// void deleteGoal(Long goalId);

View File

@@ -78,5 +78,9 @@ public class GoalServiceImpl implements GoalService {
return GoalModel.convertFrom(updatedGoalEntity, 0, 0);
}
public void delete(Long goalId) {
goalRepository.deleteById(goalId);
}
}

View File

@@ -1,5 +1,7 @@
package com.example.demo.app.presentation.controller;
import java.util.List;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
@@ -32,22 +34,21 @@ public class GoalController {
Long userId = loginUser.getUserId();
GoalModel goalModel = goalService.getGoalByUserId(userId);
GoalForm goalForm = GoalForm.convertFrom(goalModel);
List<GoalModel> goalModelList = goalService.getGoalByUserId(userId);
List<GoalForm> goalFormList = GoalForm.convertFrom(goalModelList);
model.addAttribute("goalForm", goalForm);
model.addAttribute("goalFormList", goalFormList);
return "goal_view";
}
@SessionCheck
@GetMapping("/edit")
public String editGoal(Model model, HttpSession session) {
public String editGoal(Model model, HttpSession session, Long goalId) {
LoginModel loginUser = (LoginModel) session.getAttribute("loginUser");
Long userId = loginUser.getUserId();
GoalModel goalModel = goalService.getGoalByUserId(userId);
GoalForm goalForm = GoalForm.convertFrom(goalModel);
GoalForm goalForm = GoalForm.convertFrom(goalService.getGoalById(goalId));
model.addAttribute("goalForm", goalForm);
return "goal_edit";
@@ -61,17 +62,49 @@ public class GoalController {
Long userId = loginUser.getUserId();
// 本人の目標かどうかを確認してから更新する
GoalModel currentGoal = goalService.getGoalByUserId(userId);
if (!currentGoal.getGoalId().equals(goalForm.getGoalId())) {
return "redirect:/goal"; // 他人のデータを更新しようとしたら弾く
}
// // 本人の目標かどうかを確認してから更新する
// GoalModel currentGoal = goalService.getGoalByUserId(userId);
//
// if (!currentGoal.getGoalId().equals(goalForm.getGoalId())) {
// return "redirect:/goal"; // 他人のデータを更新しようとしたら弾く
// }
GoalModel goalModel = GoalModel.convertFrom(goalForm);
goalService.updateGoal(goalModel, userId);
return "redirect:/goal";
}
@SessionCheck
@GetMapping("/create")
public String createGoalGet(@ModelAttribute GoalForm goalForm, HttpSession session) {
return "goal_create";
}
@SessionCheck
@PostMapping("/create")
public String createGoalPost(@ModelAttribute GoalForm goalForm, HttpSession session) {
LoginModel loginUser = (LoginModel) session.getAttribute("loginUser");
Long userId = loginUser.getUserId();
goalService.createGoal(GoalModel.convertFrom(goalForm), userId);
return "redirect:/goal";
}
@SessionCheck
@PostMapping("/delete") // フラグ考慮してないため、今度修正必要
public String deleteGoal(Long goalId) {
goalService.delete(goalId);
return "redirect:/goal";
}
}