From 3a543555aa5bde4d648018c0a6a74d1194e2ec4e Mon Sep 17 00:00:00 2001 From: woowahan-neo Date: Mon, 12 May 2025 08:06:59 +0900 Subject: [PATCH] feat(interview): filter mission by sessionId --- .../session/application/MissionService.java | 4 ++++ .../domain/repository/MissionRepository.java | 2 ++ .../prolog/session/ui/MissionController.java | 15 +++++++++++---- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/wooteco/prolog/session/application/MissionService.java b/backend/src/main/java/wooteco/prolog/session/application/MissionService.java index be68939e7..652b24b6c 100644 --- a/backend/src/main/java/wooteco/prolog/session/application/MissionService.java +++ b/backend/src/main/java/wooteco/prolog/session/application/MissionService.java @@ -46,6 +46,10 @@ public List findAll() { return MissionResponse.listOf(missionRepository.findAll()); } + public List findAllBySessionId(final long sessionId) { + return MissionResponse.listOf(missionRepository.findBySessionId(sessionId)); + } + public Mission findById(Long id) { return missionRepository.findById(id) .orElseThrow(() -> new BadRequestException(MISSION_NOT_FOUND)); diff --git a/backend/src/main/java/wooteco/prolog/session/domain/repository/MissionRepository.java b/backend/src/main/java/wooteco/prolog/session/domain/repository/MissionRepository.java index b34ac6979..40ebb1c28 100644 --- a/backend/src/main/java/wooteco/prolog/session/domain/repository/MissionRepository.java +++ b/backend/src/main/java/wooteco/prolog/session/domain/repository/MissionRepository.java @@ -10,4 +10,6 @@ public interface MissionRepository extends JpaRepository { Optional findByName(String name); List findBySessionIdIn(List sessionIds); + + List findBySessionId(long sessionId); } diff --git a/backend/src/main/java/wooteco/prolog/session/ui/MissionController.java b/backend/src/main/java/wooteco/prolog/session/ui/MissionController.java index c00bd6547..cae5115e5 100644 --- a/backend/src/main/java/wooteco/prolog/session/ui/MissionController.java +++ b/backend/src/main/java/wooteco/prolog/session/ui/MissionController.java @@ -1,11 +1,11 @@ package wooteco.prolog.session.ui; -import java.util.List; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import wooteco.prolog.login.aop.MemberOnly; import wooteco.prolog.login.domain.AuthMemberPrincipal; @@ -14,6 +14,8 @@ import wooteco.prolog.session.application.dto.MissionRequest; import wooteco.prolog.session.application.dto.MissionResponse; +import java.util.List; + @RestController @RequestMapping("/missions") public class MissionController { @@ -25,9 +27,14 @@ public MissionController(MissionService missionService) { } @GetMapping - public ResponseEntity> showMissions() { - List responses = missionService.findAll(); - return ResponseEntity.ok(responses); + public ResponseEntity> showMissions( + @RequestParam(required = false) final Long sessionId + ) { + if (sessionId == null) { + return ResponseEntity.ok(missionService.findAll()); + } else { + return ResponseEntity.ok(missionService.findAllBySessionId(sessionId)); + } } @MemberOnly