Skip to content

Commit 13ce148

Browse files
authored
Merge pull request #285 from prgrms-web-devcourse-final-project/refactor/EA3-206-refactor-responseentity
[EA3-206] Refactor: 응답값에 대한 변경
2 parents 995442f + c9e1e40 commit 13ce148

File tree

8 files changed

+104
-75
lines changed

8 files changed

+104
-75
lines changed

src/main/java/grep/neogulcoder/domain/admin/controller/AdminController.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.springframework.data.domain.Page;
1111
import org.springframework.data.domain.PageRequest;
1212
import org.springframework.data.domain.Pageable;
13+
import org.springframework.http.ResponseEntity;
1314
import org.springframework.security.access.prepost.PreAuthorize;
1415
import org.springframework.web.bind.annotation.DeleteMapping;
1516
import org.springframework.web.bind.annotation.GetMapping;
@@ -27,46 +28,46 @@ public class AdminController implements AdminSpecification {
2728
private final AdminService adminService;
2829

2930
@GetMapping("/users")
30-
public ApiResponse<Page<AdminUserResponse>> getUsers(
31+
public ResponseEntity<ApiResponse<Page<AdminUserResponse>>> getUsers(
3132
@RequestParam(defaultValue = "0") int page,
3233
@RequestParam(required = false) String email) {
3334
int size = 10;
3435
Pageable pageable = PageRequest.of(page, size);
35-
return ApiResponse.success(adminService.getAllUsers(pageable, email));
36+
return ResponseEntity.ok(ApiResponse.success(adminService.getAllUsers(pageable, email)));
3637
}
3738

3839
@GetMapping("/studies")
39-
public ApiResponse<Page<AdminStudyResponse>> getStudies(
40+
public ResponseEntity<ApiResponse<Page<AdminStudyResponse>>> getStudies(
4041
@RequestParam(defaultValue = "0") int page,
4142
@RequestParam(required = false) String name,
4243
@RequestParam(required = false) Category category) {
43-
return ApiResponse.success(adminService.getAllStudies(page,name,category));
44+
return ResponseEntity.ok(ApiResponse.success(adminService.getAllStudies(page,name,category)));
4445
}
4546

4647
@GetMapping("/recruitment-posts")
47-
public ApiResponse<Page<AdminRecruitmentPostResponse>> getRecruitmentPosts(
48+
public ResponseEntity<ApiResponse<Page<AdminRecruitmentPostResponse>>> getRecruitmentPosts(
4849
@RequestParam(defaultValue = "0") int page,
4950
@RequestParam(required = false) String subject) {
5051

51-
return ApiResponse.success(adminService.getAllRecruitmentPosts(page, subject));
52+
return ResponseEntity.ok(ApiResponse.success(adminService.getAllRecruitmentPosts(page, subject)));
5253
}
5354

5455
@DeleteMapping("/users/{userId}")
55-
public ApiResponse<Void> deleteUser(@PathVariable Long userId) {
56+
public ResponseEntity<ApiResponse<Void>> deleteUser(@PathVariable Long userId) {
5657
adminService.deleteUser(userId);
57-
return ApiResponse.noContent();
58+
return ResponseEntity.ok(ApiResponse.noContent());
5859
}
5960

6061
@DeleteMapping("/studies/{studyId}")
61-
public ApiResponse<Void> deleteStudy(@PathVariable Long studyId) {
62+
public ResponseEntity<ApiResponse<Void>> deleteStudy(@PathVariable Long studyId) {
6263
adminService.deleteStudy(studyId);
63-
return ApiResponse.noContent();
64+
return ResponseEntity.ok(ApiResponse.noContent());
6465
}
6566

6667
@DeleteMapping("/recruitment-posts/{postId}")
67-
public ApiResponse<Void> deleteRecruitmentPost(@PathVariable Long postId) {
68+
public ResponseEntity<ApiResponse<Void>> deleteRecruitmentPost(@PathVariable Long postId) {
6869
adminService.deleteRecruitmentPost(postId);
69-
return ApiResponse.noContent();
70+
return ResponseEntity.ok(ApiResponse.noContent());
7071
}
7172

7273
}

src/main/java/grep/neogulcoder/domain/admin/controller/AdminSpecification.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.swagger.v3.oas.annotations.Parameter;
1010
import io.swagger.v3.oas.annotations.tags.Tag;
1111
import org.springframework.data.domain.Page;
12+
import org.springframework.http.ResponseEntity;
1213
import org.springframework.web.bind.annotation.DeleteMapping;
1314
import org.springframework.web.bind.annotation.GetMapping;
1415
import org.springframework.web.bind.annotation.PathVariable;
@@ -19,14 +20,14 @@ public interface AdminSpecification {
1920

2021
@Operation(summary = "전체 사용자 조회", description = "관리자가 전체 유저 목록을 페이지 단위로 조회합니다.")
2122
@GetMapping("/admin/users")
22-
ApiResponse<Page<AdminUserResponse>> getUsers(
23+
ResponseEntity<ApiResponse<Page<AdminUserResponse>>> getUsers(
2324
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0")
2425
@RequestParam(defaultValue = "0") int page, @RequestParam(required = false) String email
2526
);
2627

2728
@Operation(summary = "전체 스터디 조회", description = "관리자가 전체 스터디 목록을 페이지 단위로 조회합니다.")
2829
@GetMapping("/admin/studies")
29-
ApiResponse<Page<AdminStudyResponse>> getStudies(
30+
ResponseEntity<ApiResponse<Page<AdminStudyResponse>>> getStudies(
3031
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0")
3132
@RequestParam(defaultValue = "0") int page,
3233
@RequestParam(required = false) String name,
@@ -35,29 +36,29 @@ ApiResponse<Page<AdminStudyResponse>> getStudies(
3536

3637
@Operation(summary = "전체 모집글 조회", description = "관리자가 전체 모집글 목록을 페이지 단위로 조회합니다.")
3738
@GetMapping("/admin/recruitment-posts")
38-
ApiResponse<Page<AdminRecruitmentPostResponse>> getRecruitmentPosts(
39+
ResponseEntity<ApiResponse<Page<AdminRecruitmentPostResponse>>> getRecruitmentPosts(
3940
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0")
4041
@RequestParam(defaultValue = "0") int page,
4142
@RequestParam(required = false) String subject
4243
);
4344

4445
@Operation(summary = "사용자 강제 탈퇴", description = "관리자가 특정 사용자를 탈퇴(삭제) 처리합니다.")
4546
@DeleteMapping("/admin/users/{userId}")
46-
ApiResponse<Void> deleteUser(
47+
ResponseEntity<ApiResponse<Void>> deleteUser(
4748
@Parameter(description = "삭제할 사용자 ID", example = "1")
4849
@PathVariable Long userId
4950
);
5051

5152
@Operation(summary = "스터디 비활성화", description = "관리자가 특정 스터디를 비활성화(삭제) 처리합니다.")
5253
@DeleteMapping("/admin/studies/{studyId}")
53-
ApiResponse<Void> deleteStudy(
54+
ResponseEntity<ApiResponse<Void>> deleteStudy(
5455
@Parameter(description = "삭제할 스터디 ID", example = "1")
5556
@PathVariable Long studyId
5657
);
5758

5859
@Operation(summary = "모집글 삭제", description = "관리자가 특정 모집글을 삭제 처리합니다.")
5960
@DeleteMapping("/admin/recruitment-posts/{postId}")
60-
ApiResponse<Void> deleteRecruitmentPost(
61+
ResponseEntity<ApiResponse<Void>> deleteRecruitmentPost(
6162
@Parameter(description = "삭제할 모집글 ID", example = "1")
6263
@PathVariable Long postId
6364
);

src/main/java/grep/neogulcoder/domain/alram/controller/AlarmController.java

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@
44
import grep.neogulcoder.domain.alram.service.AlarmService;
55
import grep.neogulcoder.global.auth.Principal;
66
import grep.neogulcoder.global.response.ApiResponse;
7+
import java.util.List;
78
import lombok.RequiredArgsConstructor;
9+
import org.springframework.http.ResponseEntity;
810
import org.springframework.security.core.annotation.AuthenticationPrincipal;
9-
import org.springframework.web.bind.annotation.*;
10-
11-
import java.util.List;
11+
import org.springframework.web.bind.annotation.GetMapping;
12+
import org.springframework.web.bind.annotation.PathVariable;
13+
import org.springframework.web.bind.annotation.PostMapping;
14+
import org.springframework.web.bind.annotation.RequestMapping;
15+
import org.springframework.web.bind.annotation.RestController;
1216

1317
@RestController
1418
@RequiredArgsConstructor
@@ -18,33 +22,39 @@ public class AlarmController implements AlarmSpecification {
1822
private final AlarmService alarmService;
1923

2024
@GetMapping("/my")
21-
public ApiResponse<List<AlarmResponse>> getAllAlarms(@AuthenticationPrincipal Principal userDetails) {
22-
return ApiResponse.success(alarmService.getAllAlarms(userDetails.getUserId()));
25+
public ResponseEntity<ApiResponse<List<AlarmResponse>>> getAllAlarms(
26+
@AuthenticationPrincipal Principal userDetails) {
27+
return ResponseEntity.ok(
28+
ApiResponse.success(alarmService.getAllAlarms(userDetails.getUserId())));
2329
}
2430

2531
@GetMapping("/unchecked/my")
26-
public ApiResponse<List<AlarmResponse>> getAllUncheckedAlarm(
27-
@AuthenticationPrincipal Principal userDetails) {
28-
return ApiResponse.success(alarmService.getAllUncheckedAlarms(userDetails.getUserId()));
32+
public ResponseEntity<ApiResponse<List<AlarmResponse>>> getAllUncheckedAlarm(
33+
@AuthenticationPrincipal Principal userDetails) {
34+
return ResponseEntity.ok(
35+
ApiResponse.success(alarmService.getAllUncheckedAlarms(userDetails.getUserId())));
2936
}
3037

3138
@PostMapping("/my/check/all")
32-
public ApiResponse<Void> checkAlarm(@AuthenticationPrincipal Principal userDetails) {
39+
public ResponseEntity<ApiResponse<Void>> checkAlarm(
40+
@AuthenticationPrincipal Principal userDetails) {
3341
alarmService.checkAllAlarmWithoutInvite(userDetails.getUserId());
34-
return ApiResponse.noContent();
42+
return ResponseEntity.ok(ApiResponse.noContent());
3543
}
3644

3745
@PostMapping("/choose/{alarmId}/response")
38-
public ApiResponse<Void> respondToInvite(@AuthenticationPrincipal Principal principal,
39-
@PathVariable Long alarmId,
40-
boolean accepted) {
46+
public ResponseEntity<ApiResponse<Void>> respondToInvite(
47+
@AuthenticationPrincipal Principal principal,
48+
@PathVariable Long alarmId,
49+
boolean accepted) {
4150
if (accepted) {
4251
alarmService.acceptInvite(principal.getUserId(), alarmId);
4352
} else {
4453
alarmService.rejectInvite(principal.getUserId(), alarmId);
4554
}
4655

47-
return ApiResponse.success(accepted ? "스터디 초대를 수락했습니다." : "스터디 초대를 거절했습니다.");
56+
return ResponseEntity.ok(
57+
ApiResponse.success(accepted ? "스터디 초대를 수락했습니다." : "스터디 초대를 거절했습니다."));
4858
}
4959

5060
}

src/main/java/grep/neogulcoder/domain/alram/controller/AlarmSpecification.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,26 @@
66
import io.swagger.v3.oas.annotations.Operation;
77
import io.swagger.v3.oas.annotations.tags.Tag;
88
import java.util.List;
9+
import org.springframework.http.ResponseEntity;
910
import org.springframework.security.core.annotation.AuthenticationPrincipal;
11+
import org.springframework.web.bind.annotation.PathVariable;
1012

1113
@Tag(name = "Alarm", description = "알림 관련 API 명세")
1214
public interface AlarmSpecification {
1315

1416
@Operation(summary = "읽음 여부 관련 없이 내 전체 알림 목록 조회", description = "로그인한 사용자의 전체 알림 목록을 조회합니다.")
15-
ApiResponse<List<AlarmResponse>> getAllAlarms(@AuthenticationPrincipal Principal userDetails);
17+
ResponseEntity<ApiResponse<List<AlarmResponse>>> getAllAlarms(
18+
@AuthenticationPrincipal Principal userDetails);
1619

1720
@Operation(summary = "내 읽지 않은 알림 목록 조회", description = "로그인한 사용자의 읽지 않은 알림 목록을 조회합니다.")
18-
ApiResponse<List<AlarmResponse>> getAllUncheckedAlarm(@AuthenticationPrincipal Principal userDetails);
21+
ResponseEntity<ApiResponse<List<AlarmResponse>>> getAllUncheckedAlarm(
22+
@AuthenticationPrincipal Principal userDetails);
1923

2024
@Operation(summary = "내 알림 전체 읽음 처리", description = "로그인한 사용자의 모든 알림을 읽음 처리합니다.")
21-
ApiResponse<Void> checkAlarm(@AuthenticationPrincipal Principal userDetails);
25+
ResponseEntity<ApiResponse<Void>> checkAlarm(@AuthenticationPrincipal Principal userDetails);
26+
27+
@Operation(summary = "스터디 수락/거절", description = "스터디 초대를 수락/거절합니다.")
28+
ResponseEntity<ApiResponse<Void>> respondToInvite(@AuthenticationPrincipal Principal principal,
29+
@PathVariable Long alarmId,
30+
boolean accepted);
2231
}

src/main/java/grep/neogulcoder/domain/prtemplate/controller/PrTemplateController.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import grep.neogulcoder.global.auth.Principal;
99
import grep.neogulcoder.global.response.ApiResponse;
1010
import lombok.RequiredArgsConstructor;
11+
import org.springframework.http.ResponseEntity;
1112
import org.springframework.security.core.annotation.AuthenticationPrincipal;
1213
import org.springframework.web.bind.annotation.GetMapping;
1314
import org.springframework.web.bind.annotation.PathVariable;
@@ -25,29 +26,29 @@ public class PrTemplateController implements PrTemplateSpecification {
2526
private final LinkService linkService;
2627

2728
@GetMapping("/mine")
28-
public ApiResponse<PrPageResponse> get(@AuthenticationPrincipal Principal principal) {
29+
public ResponseEntity<ApiResponse<PrPageResponse>> get(@AuthenticationPrincipal Principal principal) {
2930
PrPageResponse prPageResponse = prTemplateService.toResponse(principal.getUserId());
30-
return ApiResponse.success(prPageResponse);
31+
return ResponseEntity.ok(ApiResponse.success(prPageResponse));
3132
}
3233

3334
@GetMapping("/{userid}")
34-
public ApiResponse<PrPageResponse> get(@PathVariable("userid") Long userId) {
35+
public ResponseEntity<ApiResponse<PrPageResponse>> get(@PathVariable("userid") Long userId) {
3536
PrPageResponse prPageResponse = prTemplateService.toResponse(userId);
36-
return ApiResponse.success(prPageResponse);
37+
return ResponseEntity.ok(ApiResponse.success(prPageResponse));
3738
}
3839

3940
@PutMapping("/update/template")
40-
public ApiResponse<Void> update(@AuthenticationPrincipal Principal principal,
41+
public ResponseEntity<ApiResponse<Void>> update(@AuthenticationPrincipal Principal principal,
4142
@RequestBody PrUpdateRequest request) {
4243
prTemplateService.update(principal.getUserId(), request.getLocation());
4344
linkService.update(principal.getUserId(), request.getPrUrls());
44-
return ApiResponse.noContent();
45+
return ResponseEntity.ok(ApiResponse.noContent());
4546
}
4647

4748
@PutMapping("/update/introduction")
48-
public ApiResponse<Void> updateIntroduction(@AuthenticationPrincipal Principal principal,
49+
public ResponseEntity<ApiResponse<Void>> updateIntroduction(@AuthenticationPrincipal Principal principal,
4950
@RequestBody IntroductionUpdateRequest request) {
5051
prTemplateService.updateIntroduction(principal.getUserId(), request.getIntroduction());
51-
return ApiResponse.noContent();
52+
return ResponseEntity.ok(ApiResponse.noContent());
5253
}
5354
}

src/main/java/grep/neogulcoder/domain/prtemplate/controller/PrTemplateSpecification.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,24 @@
77
import grep.neogulcoder.global.response.ApiResponse;
88
import io.swagger.v3.oas.annotations.Operation;
99
import io.swagger.v3.oas.annotations.tags.Tag;
10+
import org.springframework.http.ResponseEntity;
1011
import org.springframework.security.core.annotation.AuthenticationPrincipal;
12+
import org.springframework.web.bind.annotation.PathVariable;
1113
import org.springframework.web.bind.annotation.RequestBody;
1214

1315
@Tag(name = "PR_Template", description = "PR 템플릿 API")
1416
public interface PrTemplateSpecification {
1517

1618
@Operation(summary = "PR 템플릿 조회", description = "PR 템플릿을 조회합니다.")
17-
ApiResponse<PrPageResponse> get(@AuthenticationPrincipal Principal principal);
19+
ResponseEntity<ApiResponse<PrPageResponse>> get(@AuthenticationPrincipal Principal principal);
20+
21+
@Operation(summary = "타인 PR 템플릿 조회", description = "회원 ID를 통해 PR 템플릿을 조회합니다.")
22+
ResponseEntity<ApiResponse<PrPageResponse>> get(@PathVariable("userid") Long userId);
1823

1924
@Operation(summary = "PR 정보 수정", description = "PR 정보를 수정합니다.")
20-
ApiResponse<Void> update(@AuthenticationPrincipal Principal principal, @RequestBody PrUpdateRequest request);
25+
ResponseEntity<ApiResponse<Void>> update(@AuthenticationPrincipal Principal principal, @RequestBody PrUpdateRequest request);
2126

2227
@Operation(summary = "PR 소개글 수정", description = "PR 소개글을 수정합니다.")
23-
ApiResponse<Void> updateIntroduction(@AuthenticationPrincipal Principal principal, @RequestBody IntroductionUpdateRequest request);
28+
ResponseEntity<ApiResponse<Void>> updateIntroduction(@AuthenticationPrincipal Principal principal, @RequestBody IntroductionUpdateRequest request);
2429

2530
}

0 commit comments

Comments
 (0)