From 160d07afa9a4eb97119b9f92aca75708fd9dbd30 Mon Sep 17 00:00:00 2001 From: yhames Date: Mon, 12 Aug 2024 12:11:45 +0900 Subject: [PATCH 1/4] fix: change RequestBody to ModelAttribute --- .../api/admin/agenda/controller/AgendaAdminController.java | 3 +-- .../controller/AgendaAnnouncementAdminController.java | 3 ++- .../admin/agendateam/controller/AgendaTeamAdminController.java | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agenda/controller/AgendaAdminController.java b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agenda/controller/AgendaAdminController.java index 00c5a6ed4..f56ae339a 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agenda/controller/AgendaAdminController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agenda/controller/AgendaAdminController.java @@ -17,7 +17,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; 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; @@ -41,7 +40,7 @@ public class AgendaAdminController { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Agenda 요청 리스트 조회 성공")}) @GetMapping("/request/list") - public ResponseEntity> agendaList(@RequestBody @Valid PageRequestDto pageDto) { + public ResponseEntity> agendaList(@ModelAttribute @Valid PageRequestDto pageDto) { int page = pageDto.getPage(); int size = pageDto.getSize(); Pageable pageable = PageRequest.of(page - 1, size, Sort.by("id").descending()); diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminController.java b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminController.java index 518e1132e..d5d8505c1 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminController.java @@ -11,6 +11,7 @@ import org.springframework.data.domain.Sort; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -33,7 +34,7 @@ public class AgendaAnnouncementAdminController { @GetMapping() public ResponseEntity> agendaAnnouncementList( - @RequestParam("agenda_key") UUID agendaKey, @RequestBody @Valid PageRequestDto pageRequest) { + @RequestParam("agenda_key") UUID agendaKey, @ModelAttribute @Valid PageRequestDto pageRequest) { int page = pageRequest.getPage(); int size = pageRequest.getSize(); Pageable pageable = PageRequest.of(page - 1, size, Sort.by("id").descending()); diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java index 5a97fa225..dd54e17b5 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java @@ -12,6 +12,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -37,7 +38,7 @@ public class AgendaTeamAdminController { @GetMapping("/list") public ResponseEntity> agendaTeamList(@RequestParam("agenda_key") UUID agendaKey, - @RequestBody @Valid PageRequestDto pageRequestDto) { + @ModelAttribute @Valid PageRequestDto pageRequestDto) { int page = pageRequestDto.getPage(); int size = pageRequestDto.getSize(); Pageable pageable = PageRequest.of(page - 1, size, Sort.by("id").descending()); From 531ecb1ac39b2cb93f98c54846f3cc2c658639a3 Mon Sep 17 00:00:00 2001 From: yhames Date: Mon, 12 Aug 2024 12:13:19 +0900 Subject: [PATCH 2/4] fix: change RequestBody to ModelAttribute --- .../admin/agendateam/controller/AgendaTeamAdminController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java index dd54e17b5..94dd659d6 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java @@ -51,7 +51,7 @@ public ResponseEntity> agendaTeamList(@RequestParam("agen @GetMapping public ResponseEntity agendaTeamDetail( - @RequestBody @Valid AgendaTeamKeyReqDto agendaTeamKeyReqDto) { + @ModelAttribute @Valid AgendaTeamKeyReqDto agendaTeamKeyReqDto) { AgendaTeam agendaTeam = agendaTeamAdminService.getAgendaTeamByTeamKey(agendaTeamKeyReqDto.getTeamKey()); List participants = agendaTeamAdminService.getAgendaProfileListByAgendaTeam(agendaTeam); AgendaTeamDetailResDto agendaTeamDetailResDto = AgendaTeamDetailResDto.MapStruct.INSTANCE From 6ac38534178b24d0a8d1e8baed572c229acb001f Mon Sep 17 00:00:00 2001 From: yhames Date: Mon, 12 Aug 2024 12:18:58 +0900 Subject: [PATCH 3/4] test: fix json to query paramter --- .../controller/AgendaAdminControllerTest.java | 9 +++--- ...AgendaAnnouncementAdminControllerTest.java | 18 ++++-------- .../AgendaTeamAdminControllerTest.java | 29 +++++++------------ 3 files changed, 21 insertions(+), 35 deletions(-) diff --git a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agenda/controller/AgendaAdminControllerTest.java b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agenda/controller/AgendaAdminControllerTest.java index 2ffafa170..d2dccf792 100644 --- a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agenda/controller/AgendaAdminControllerTest.java +++ b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agenda/controller/AgendaAdminControllerTest.java @@ -105,13 +105,12 @@ void findAgendaByAgendaKeySuccessAdmin(int page) throws Exception { agendas.addAll(agendaMockData.createNonOfficialAgendaList(5, AgendaStatus.OPEN)); agendas.addAll(agendaMockData.createNonOfficialAgendaList(5, AgendaStatus.FINISH)); agendas.addAll(agendaMockData.createNonOfficialAgendaList(5, AgendaStatus.CANCEL)); - PageRequestDto pageRequestDto = new PageRequestDto(page, size); - String request = objectMapper.writeValueAsString(pageRequestDto); // when String response = mockMvc.perform(get("/agenda/admin/request/list") .header("Authorization", "Bearer " + accessToken) - .contentType(MediaType.APPLICATION_JSON).content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaAdminResDto[] result = objectMapper.readValue(response, AgendaAdminResDto[].class); @@ -131,12 +130,12 @@ void findAgendaByAgendaKeySuccessAdminWithNoContent() throws Exception { int page = 1; int size = 10; PageRequestDto pageRequestDto = new PageRequestDto(page, size); - String request = objectMapper.writeValueAsString(pageRequestDto); // when String response = mockMvc.perform(get("/agenda/admin/request/list") .header("Authorization", "Bearer " + accessToken) - .contentType(MediaType.APPLICATION_JSON).content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaAdminResDto[] result = objectMapper.readValue(response, AgendaAdminResDto[].class); diff --git a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminControllerTest.java b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminControllerTest.java index 31904d27d..67cad42dd 100644 --- a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminControllerTest.java +++ b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendaannouncement/controller/AgendaAnnouncementAdminControllerTest.java @@ -92,15 +92,13 @@ void getAgendaAnnouncementAdminSuccess(int page) throws Exception { Agenda agenda = agendaFixture.createAgenda(); List announcements = agendaAnnouncementFixture.createAgendaAnnouncementList(agenda, 37); - PageRequestDto pageDto = new PageRequestDto(page, size); - String request = objectMapper.writeValueAsString(pageDto); // when String response = mockMvc.perform(get("/agenda/admin/announcement") .header("Authorization", "Bearer " + accessToken) .param("agenda_key", agenda.getAgendaKey().toString()) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaAnnouncementResDto[] result = objectMapper.readValue(response, AgendaAnnouncementResDto[].class); @@ -121,15 +119,13 @@ void getAgendaAnnouncementAdminSuccessWithNoContent() throws Exception { int page = 1; int size = 10; Agenda agenda = agendaFixture.createAgenda(); - PageRequestDto pageDto = new PageRequestDto(page, size); - String request = objectMapper.writeValueAsString(pageDto); // when String response = mockMvc.perform(get("/agenda/admin/announcement") .header("Authorization", "Bearer " + accessToken) .param("agenda_key", agenda.getAgendaKey().toString()) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaAnnouncementResDto[] result = objectMapper.readValue(response, AgendaAnnouncementResDto[].class); @@ -144,15 +140,13 @@ void getAgendaAnnouncementAdminFailedWithNoAgenda() throws Exception { // given int page = 1; int size = 10; - PageRequestDto pageDto = new PageRequestDto(page, size); - String request = objectMapper.writeValueAsString(pageDto); // expected mockMvc.perform(get("/agenda/admin/announcement") .header("Authorization", "Bearer " + accessToken) .param("agenda_key", UUID.randomUUID().toString()) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isNotFound()); } } diff --git a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java index 124b7e63f..6813109ab 100644 --- a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java +++ b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java @@ -114,15 +114,13 @@ void getAgendaTeamListAdminSuccess(int page) throws Exception { Agenda agenda = agendaFixture.createAgenda(2, 50, 1, 10); List teams = agendaTeamFixture .createAgendaTeamList(agenda, AgendaTeamStatus.CONFIRM, total); - PageRequestDto pageRequestDto = new PageRequestDto(page, size); - String request = objectMapper.writeValueAsString(pageRequestDto); // when String response = mockMvc.perform(get("/agenda/admin/team/list") .header("Authorization", "Bearer " + accessToken) .param("agenda_key", agenda.getAgendaKey().toString()) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaTeamResDto[] result = objectMapper.readValue(response, AgendaTeamResDto[].class); @@ -140,15 +138,15 @@ void getAgendaTeamListAdminSuccess(int page) throws Exception { @DisplayName("Admin AgendaTeam 전체 조회 실패 - Agenda 없음") void getAgendaTeamListAdminFailedWithNoAgenda() throws Exception { // given - PageRequestDto pageRequestDto = new PageRequestDto(1, 10); - String request = objectMapper.writeValueAsString(pageRequestDto); + int page = 1; + int size = 10; // expected mockMvc.perform(get("/agenda/admin/team/list") .header("Authorization", "Bearer " + accessToken) .param("agenda_key", UUID.randomUUID().toString()) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("page", String.valueOf(page)) + .param("size", String.valueOf(size))) .andExpect(status().isNotFound()); } } @@ -165,13 +163,12 @@ void getAgendaTeamDetailAdminSuccess() throws Exception { List profiles = agendaProfileFixture.createAgendaProfileList(5); profiles.forEach(profile -> agendaTeamProfileFixture .createAgendaTeamProfile(agenda, team, profile)); - String request = objectMapper.writeValueAsString(new AgendaTeamKeyReqDto(team.getTeamKey())); + AgendaTeamKeyReqDto agendaTeamKeyReqDto = new AgendaTeamKeyReqDto(team.getTeamKey()); // when String response = mockMvc.perform(get("/agenda/admin/team") .header("Authorization", "Bearer " + accessToken) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("team_key", team.getTeamKey().toString())) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaTeamDetailResDto result = objectMapper.readValue(response, AgendaTeamDetailResDto.class); @@ -200,13 +197,10 @@ void getAgendaTeamDetailAdminFailedWithNoTeamKey() throws Exception { @DisplayName("Admin AgendaTeam 상세 조회 실패 - 존재하지 않는 Team") void getAgendaTeamDetailAdminFailedWithNotFoundTeam() throws Exception { // given - String request = objectMapper.writeValueAsString(new AgendaTeamKeyReqDto(UUID.randomUUID())); - // expected mockMvc.perform(get("/agenda/admin/team") .header("Authorization", "Bearer " + accessToken) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("team_key", UUID.randomUUID().toString())) .andExpect(status().isNotFound()); } @@ -216,13 +210,12 @@ void getAgendaTeamDetailAdminSuccessWithNoTeamMates() throws Exception { // given Agenda agenda = agendaFixture.createAgenda(); AgendaTeam team = agendaTeamFixture.createAgendaTeam(agenda); - String request = objectMapper.writeValueAsString(new AgendaTeamKeyReqDto(team.getTeamKey())); + AgendaTeamKeyReqDto agendaTeamKeyReqDto = new AgendaTeamKeyReqDto(team.getTeamKey()); // when String response = mockMvc.perform(get("/agenda/admin/team") .header("Authorization", "Bearer " + accessToken) - .contentType(MediaType.APPLICATION_JSON) - .content(request)) + .param("team_key", team.getTeamKey().toString())) .andExpect(status().isOk()).andReturn().getResponse().getContentAsString(); AgendaTeamDetailResDto result = objectMapper.readValue(response, AgendaTeamDetailResDto.class); From 73b66a7840863c14462c55a28c66967e8dee4c14 Mon Sep 17 00:00:00 2001 From: yhames Date: Mon, 12 Aug 2024 12:26:42 +0900 Subject: [PATCH 4/4] test: fix json to query paramter --- .../controller/AgendaTeamAdminController.java | 6 ++--- .../request/AgendaTeamKeyReqDto.java | 23 ------------------- .../AgendaTeamAdminControllerTest.java | 3 --- 3 files changed, 2 insertions(+), 30 deletions(-) delete mode 100644 gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/request/AgendaTeamKeyReqDto.java diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java index 94dd659d6..833cbd02d 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminController.java @@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import gg.agenda.api.admin.agendateam.controller.request.AgendaTeamKeyReqDto; import gg.agenda.api.admin.agendateam.controller.request.AgendaTeamUpdateDto; import gg.agenda.api.admin.agendateam.controller.response.AgendaTeamDetailResDto; import gg.agenda.api.admin.agendateam.controller.response.AgendaTeamResDto; @@ -50,9 +49,8 @@ public ResponseEntity> agendaTeamList(@RequestParam("agen } @GetMapping - public ResponseEntity agendaTeamDetail( - @ModelAttribute @Valid AgendaTeamKeyReqDto agendaTeamKeyReqDto) { - AgendaTeam agendaTeam = agendaTeamAdminService.getAgendaTeamByTeamKey(agendaTeamKeyReqDto.getTeamKey()); + public ResponseEntity agendaTeamDetail(@RequestParam("team_key") UUID agendaTeamKey) { + AgendaTeam agendaTeam = agendaTeamAdminService.getAgendaTeamByTeamKey(agendaTeamKey); List participants = agendaTeamAdminService.getAgendaProfileListByAgendaTeam(agendaTeam); AgendaTeamDetailResDto agendaTeamDetailResDto = AgendaTeamDetailResDto.MapStruct.INSTANCE .toDto(agendaTeam, participants); diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/request/AgendaTeamKeyReqDto.java b/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/request/AgendaTeamKeyReqDto.java deleted file mode 100644 index 937611b77..000000000 --- a/gg-agenda-api/src/main/java/gg/agenda/api/admin/agendateam/controller/request/AgendaTeamKeyReqDto.java +++ /dev/null @@ -1,23 +0,0 @@ -package gg.agenda.api.admin.agendateam.controller.request; - -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import lombok.AccessLevel; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class AgendaTeamKeyReqDto { - - @NotNull - private UUID teamKey; - - @Builder - public AgendaTeamKeyReqDto(UUID teamKey) { - this.teamKey = teamKey; - } -} diff --git a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java index 6813109ab..34f87f7bc 100644 --- a/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java +++ b/gg-agenda-api/src/test/java/gg/agenda/api/admin/agendateam/controller/AgendaTeamAdminControllerTest.java @@ -27,7 +27,6 @@ import gg.admin.repo.agenda.AgendaAdminRepository; import gg.admin.repo.agenda.AgendaTeamAdminRepository; import gg.admin.repo.agenda.AgendaTeamProfileAdminRepository; -import gg.agenda.api.admin.agendateam.controller.request.AgendaTeamKeyReqDto; import gg.agenda.api.admin.agendateam.controller.request.AgendaTeamMateReqDto; import gg.agenda.api.admin.agendateam.controller.request.AgendaTeamUpdateDto; import gg.agenda.api.admin.agendateam.controller.response.AgendaTeamDetailResDto; @@ -163,7 +162,6 @@ void getAgendaTeamDetailAdminSuccess() throws Exception { List profiles = agendaProfileFixture.createAgendaProfileList(5); profiles.forEach(profile -> agendaTeamProfileFixture .createAgendaTeamProfile(agenda, team, profile)); - AgendaTeamKeyReqDto agendaTeamKeyReqDto = new AgendaTeamKeyReqDto(team.getTeamKey()); // when String response = mockMvc.perform(get("/agenda/admin/team") @@ -210,7 +208,6 @@ void getAgendaTeamDetailAdminSuccessWithNoTeamMates() throws Exception { // given Agenda agenda = agendaFixture.createAgenda(); AgendaTeam team = agendaTeamFixture.createAgendaTeam(agenda); - AgendaTeamKeyReqDto agendaTeamKeyReqDto = new AgendaTeamKeyReqDto(team.getTeamKey()); // when String response = mockMvc.perform(get("/agenda/admin/team")