From 5f2c814ae8c5d8a78411f4cc954935fbc4b9aa89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=95=9C=EC=8A=B9=EC=99=84?= Date: Sat, 6 Sep 2025 13:56:17 +0900 Subject: [PATCH] =?UTF-8?q?fix(api):=20=EA=B4=80=EB=A6=AC=EC=9E=90=20API?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 유저 상태 변경 - 커뮤니티 글/댓글, 유치원/실습 리뷰 삭제 API 수정(어드민도 가능하도록) --- .../controller/CommentController.java | 2 +- .../service/CommunityCommentService.java | 8 +++-- .../controller/CommunityController.java | 2 +- .../service/CommunityService.java | 8 +++-- ...indergartenInternshipReviewController.java | 12 ++++++++ .../entity/KindergartenInternshipReview.java | 5 ++++ .../KindergartenInternshipReviewService.java | 22 ++++++++++++-- .../KindergartenWorkReviewController.java | 12 ++++++++ .../entity/KindergartenWorkReview.java | 5 ++++ .../KindergartenWorkReviewService.java | 20 +++++++++++++ .../user/controller/AdminUserController.java | 15 ++++++++++ .../request/UpdateUserStatusRequestDTO.java | 20 +++++++++++++ .../kindergarten/domain/user/entity/User.java | 10 +++++++ .../domain/user/service/UserService.java | 30 ++++++++++++++----- 14 files changed, 156 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/onebyone/kindergarten/domain/user/dto/request/UpdateUserStatusRequestDTO.java diff --git a/src/main/java/com/onebyone/kindergarten/domain/communityComments/controller/CommentController.java b/src/main/java/com/onebyone/kindergarten/domain/communityComments/controller/CommentController.java index f816131..f06dff8 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/communityComments/controller/CommentController.java +++ b/src/main/java/com/onebyone/kindergarten/domain/communityComments/controller/CommentController.java @@ -18,7 +18,7 @@ public class CommentController { private final CommunityCommentService commentService; @DeleteMapping("/{commentId}") - @Operation(summary = "댓글 삭제", description = "댓글을 삭제합니다. 본인이 작성한 댓글만 삭제할 수 있습니다. 원댓글 삭제 시 대댓글도 함께 삭제됩니다.") + @Operation(summary = "댓글 삭제", description = "댓글을 삭제합니다. 본인이 작성한 댓글 또는 관리자가 삭제할 수 있습니다. 원댓글 삭제 시 대댓글도 함께 삭제됩니다.") public ResponseDto deleteComment( @PathVariable Long commentId, @AuthenticationPrincipal UserDetails userDetails diff --git a/src/main/java/com/onebyone/kindergarten/domain/communityComments/service/CommunityCommentService.java b/src/main/java/com/onebyone/kindergarten/domain/communityComments/service/CommunityCommentService.java index 7dcd5dd..7182d15 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/communityComments/service/CommunityCommentService.java +++ b/src/main/java/com/onebyone/kindergarten/domain/communityComments/service/CommunityCommentService.java @@ -1,6 +1,7 @@ package com.onebyone.kindergarten.domain.communityComments.service; import com.onebyone.kindergarten.domain.communityComments.dto.response.PageCommunityCommentsResponseDTO; +import com.onebyone.kindergarten.domain.user.enums.UserRole; import com.onebyone.kindergarten.domain.userBlock.repository.UserBlockRepository; import com.onebyone.kindergarten.global.exception.BusinessException; import com.onebyone.kindergarten.global.exception.ErrorCodes; @@ -147,8 +148,11 @@ public void deleteComment(Long commentId, String email) { CommunityComment comment = commentRepository.findByIdWithUser(commentId) .orElseThrow(() -> new BusinessException(ErrorCodes.NOT_FOUND_COMMENT)); - // 작성자 확인 - if (!comment.getUser().getEmail().equals(email)) { + // 현재 사용자 조회 + User currentUser = userService.getUserByEmail(email); + + // 작성자 또는 관리자 권한 확인 + if (!comment.getUser().getEmail().equals(email) && !currentUser.getRole().equals(UserRole.ADMIN)) { throw new BusinessException(ErrorCodes.UNAUTHORIZED_DELETE); } diff --git a/src/main/java/com/onebyone/kindergarten/domain/communityPosts/controller/CommunityController.java b/src/main/java/com/onebyone/kindergarten/domain/communityPosts/controller/CommunityController.java index 1650e7c..cd977fc 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/communityPosts/controller/CommunityController.java +++ b/src/main/java/com/onebyone/kindergarten/domain/communityPosts/controller/CommunityController.java @@ -40,7 +40,7 @@ public ResponseDto createPost( } @DeleteMapping("/{id}") - @Operation(summary = "커뮤니티 게시글 삭제", description = "게시글을 삭제합니다. 본인이 작성한 게시글만 삭제할 수 있습니다.") + @Operation(summary = "커뮤니티 게시글 삭제", description = "게시글을 삭제합니다. 본인이 작성한 게시글 또는 관리자가 삭제할 수 있습니다.") public ResponseDto deletePost( @PathVariable Long id, @AuthenticationPrincipal UserDetails userDetails diff --git a/src/main/java/com/onebyone/kindergarten/domain/communityPosts/service/CommunityService.java b/src/main/java/com/onebyone/kindergarten/domain/communityPosts/service/CommunityService.java index 54b8ac6..f38d589 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/communityPosts/service/CommunityService.java +++ b/src/main/java/com/onebyone/kindergarten/domain/communityPosts/service/CommunityService.java @@ -9,6 +9,7 @@ import com.onebyone.kindergarten.domain.communityPosts.repository.CommunityCategoryRepository; import com.onebyone.kindergarten.domain.communityPosts.repository.CommunityRepository; import com.onebyone.kindergarten.domain.user.entity.User; +import com.onebyone.kindergarten.domain.user.enums.UserRole; import com.onebyone.kindergarten.domain.user.service.UserService; import com.onebyone.kindergarten.domain.userBlock.repository.UserBlockRepository; import com.onebyone.kindergarten.global.config.CacheConfig; @@ -114,8 +115,11 @@ public void deletePost(Long postId, String email) { CommunityPost post = communityRepository.findByIdWithUser(postId) .orElseThrow(() -> new BusinessException(ErrorCodes.NOT_FOUND_POST)); - // 작성자 확인 - if (!post.getUser().getEmail().equals(email)) { + // 현재 사용자 조회 + User currentUser = userService.getUserByEmail(email); + + // 작성자 또는 관리자 권한 확인 + if (!post.getUser().getEmail().equals(email) && !currentUser.getRole().equals(UserRole.ADMIN)) { throw new BusinessException(ErrorCodes.UNAUTHORIZED_DELETE); } diff --git a/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/controller/KindergartenInternshipReviewController.java b/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/controller/KindergartenInternshipReviewController.java index 5439aed..2694876 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/controller/KindergartenInternshipReviewController.java +++ b/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/controller/KindergartenInternshipReviewController.java @@ -6,6 +6,7 @@ import com.onebyone.kindergarten.domain.kindergartenInternshipReview.dto.ModifyInternshipReviewRequestDTO; import com.onebyone.kindergarten.domain.kindergartenInternshipReview.enums.InternshipReviewStarRatingType; import com.onebyone.kindergarten.domain.kindergartenInternshipReview.service.KindergartenInternshipReviewService; +import com.onebyone.kindergarten.global.common.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -60,4 +61,15 @@ public InternshipReviewPagedResponseDTO getReviews( ) { return kindergartenInternshipReviewService.getReviews(kindergartenId, page, size, sortType, internshipReviewStarRatingType, starRating); } + + @Operation(summary = "실습리뷰-05 리뷰 삭제", description = "실습 리뷰를 삭제합니다. 본인이 작성한 리뷰 또는 관리자가 삭제할 수 있습니다.") + @DeleteMapping("/review/{internshipReviewId}") + public ResponseDto deleteInternshipReview( + @PathVariable("internshipReviewId") Long id, + @AuthenticationPrincipal UserDetails userDetails + ) { + kindergartenInternshipReviewService.deleteInternshipReview(id, userDetails.getUsername()); + return ResponseDto.success("실습 리뷰가 삭제되었습니다."); + } + } \ No newline at end of file diff --git a/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/entity/KindergartenInternshipReview.java b/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/entity/KindergartenInternshipReview.java index 72e8cfa..e6795ca 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/entity/KindergartenInternshipReview.java +++ b/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/entity/KindergartenInternshipReview.java @@ -79,4 +79,9 @@ public void minusLikeCount() { public void plusLikeCount() { this.likeCount++; } + + /// 리뷰 소프트 삭제 + public void markAsDeleted() { + this.deletedAt = java.time.LocalDateTime.now(); + } } \ No newline at end of file diff --git a/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/service/KindergartenInternshipReviewService.java b/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/service/KindergartenInternshipReviewService.java index 8d178db..f11845f 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/service/KindergartenInternshipReviewService.java +++ b/src/main/java/com/onebyone/kindergarten/domain/kindergartenInternshipReview/service/KindergartenInternshipReviewService.java @@ -12,12 +12,12 @@ import com.onebyone.kindergarten.domain.kindergatens.entity.Kindergarten; import com.onebyone.kindergarten.domain.kindergatens.service.KindergartenService; import com.onebyone.kindergarten.domain.user.entity.User; +import com.onebyone.kindergarten.domain.user.enums.UserRole; import com.onebyone.kindergarten.domain.user.service.UserService; import com.onebyone.kindergarten.global.enums.ReviewStatus; import com.onebyone.kindergarten.global.exception.BusinessException; import com.onebyone.kindergarten.global.exception.ErrorCodes; import lombok.RequiredArgsConstructor; -import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -34,7 +34,6 @@ public class KindergartenInternshipReviewService { private final KindergartenService kindergartenService; private final KindergartenInternshipReviewRepository kindergartenInternshipReviewRepository; private final KindergartenInternshipReviewLikeHistoryRepository kindergartenInternshipReviewLikeHistoryRepository; - private final JdbcTemplateAutoConfiguration jdbcTemplateAutoConfiguration; public Kindergarten createInternshipReview(CreateInternshipReviewRequestDTO request, String email) { User user = userService.getUserByEmail(email); @@ -175,4 +174,23 @@ public InternshipReviewPagedResponseDTO getMyReviews(String email, int page, int .totalPages(reviewPage.getTotalPages()) .build(); } + + /// 실습 리뷰 삭제 (소프트 삭제) + @Transactional + public void deleteInternshipReview(Long reviewId, String email) { + // 리뷰 조회 + KindergartenInternshipReview review = kindergartenInternshipReviewRepository.findById(reviewId) + .orElseThrow(() -> new BusinessException(ErrorCodes.NOT_FOUND_INTERNSHIP_REVIEW)); + + // 현재 사용자 조회 + User currentUser = userService.getUserByEmail(email); + + // 작성자 또는 관리자 권한 확인 + if (!review.getUser().getEmail().equals(email) && !currentUser.getRole().equals(UserRole.ADMIN)) { + throw new BusinessException(ErrorCodes.UNAUTHORIZED_DELETE); + } + + // 리뷰 소프트 삭제 (deletedAt 설정) + review.markAsDeleted(); + } } diff --git a/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/controller/KindergartenWorkReviewController.java b/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/controller/KindergartenWorkReviewController.java index e56e183..f2e47f1 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/controller/KindergartenWorkReviewController.java +++ b/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/controller/KindergartenWorkReviewController.java @@ -6,6 +6,7 @@ import com.onebyone.kindergarten.domain.kindergartenWorkReview.dto.WorkReviewPagedResponseDTO; import com.onebyone.kindergarten.domain.kindergartenWorkReview.enums.WorkReviewStarRatingType; import com.onebyone.kindergarten.domain.kindergartenWorkReview.service.KindergartenWorkReviewService; +import com.onebyone.kindergarten.global.common.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -60,4 +61,15 @@ public WorkReviewPagedResponseDTO getReviews( ) { return kindergartenWorkReviewService.getReviews(kindergartenId, page, size, sortType, internshipReviewStarRatingType, starRating); } + + @Operation(summary = "근무리뷰-05 리뷰 삭제", description = "근무 리뷰를 삭제합니다. 본인이 작성한 리뷰 또는 관리자가 삭제할 수 있습니다.") + @DeleteMapping("/review/{workReviewId}") + public ResponseDto deleteWorkReview( + @PathVariable("workReviewId") Long id, + @AuthenticationPrincipal UserDetails userDetails + ) { + kindergartenWorkReviewService.deleteWorkReview(id, userDetails.getUsername()); + return ResponseDto.success("근무 리뷰가 삭제되었습니다."); + } + } \ No newline at end of file diff --git a/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/entity/KindergartenWorkReview.java b/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/entity/KindergartenWorkReview.java index ed7da3f..fa25da2 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/entity/KindergartenWorkReview.java +++ b/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/entity/KindergartenWorkReview.java @@ -99,4 +99,9 @@ public void minusLikeCount() { public void plusLikeCount() { this.likeCount++; } + + /// 리뷰 소프트 삭제 + public void markAsDeleted() { + this.deletedAt = java.time.LocalDateTime.now(); + } } \ No newline at end of file diff --git a/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/service/KindergartenWorkReviewService.java b/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/service/KindergartenWorkReviewService.java index 1cb33b0..b7d6e87 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/service/KindergartenWorkReviewService.java +++ b/src/main/java/com/onebyone/kindergarten/domain/kindergartenWorkReview/service/KindergartenWorkReviewService.java @@ -13,6 +13,7 @@ import com.onebyone.kindergarten.domain.kindergatens.service.KindergartenService; import com.onebyone.kindergarten.domain.pushNotification.service.NotificationTemplateService; import com.onebyone.kindergarten.domain.user.entity.User; +import com.onebyone.kindergarten.domain.user.enums.UserRole; import com.onebyone.kindergarten.domain.user.service.UserService; import com.onebyone.kindergarten.global.enums.ReviewStatus; import com.onebyone.kindergarten.global.exception.BusinessException; @@ -201,4 +202,23 @@ public WorkReviewPagedResponseDTO getMyReviews(String email, int page, int size) .totalPages(reviewPage.getTotalPages()) .build(); } + + /// 근무 리뷰 삭제 (소프트 삭제) + @Transactional + public void deleteWorkReview(Long reviewId, String email) { + // 리뷰 조회 + KindergartenWorkReview review = workReviewRepository.findById(reviewId) + .orElseThrow(() -> new BusinessException(ErrorCodes.NOT_FOUND_WORK_REVIEW)); + + // 현재 사용자 조회 + User currentUser = userService.getUserByEmail(email); + + // 작성자 또는 관리자 권한 확인 + if (!review.getUser().getEmail().equals(email) && !currentUser.getRole().equals(UserRole.ADMIN)) { + throw new BusinessException(ErrorCodes.UNAUTHORIZED_DELETE); + } + + // 리뷰 소프트 삭제 (deletedAt 설정) + review.markAsDeleted(); + } } \ No newline at end of file diff --git a/src/main/java/com/onebyone/kindergarten/domain/user/controller/AdminUserController.java b/src/main/java/com/onebyone/kindergarten/domain/user/controller/AdminUserController.java index e84d285..8a3712c 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/user/controller/AdminUserController.java +++ b/src/main/java/com/onebyone/kindergarten/domain/user/controller/AdminUserController.java @@ -1,5 +1,6 @@ package com.onebyone.kindergarten.domain.user.controller; +import com.onebyone.kindergarten.domain.user.dto.request.UpdateUserStatusRequestDTO; import com.onebyone.kindergarten.domain.user.dto.request.UserSearchDTO; import com.onebyone.kindergarten.domain.user.dto.response.AdminUserResponseDTO; import com.onebyone.kindergarten.domain.user.service.UserService; @@ -7,11 +8,14 @@ import com.onebyone.kindergarten.global.common.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.web.PageableDefault; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.bind.annotation.*; @RestController @@ -49,4 +53,15 @@ public ResponseDto getUserDetail( AdminUserResponseDTO user = userService.getUserById(userId); return ResponseDto.success(user); } + + @PatchMapping("/{userId}/status") + @Operation(summary = "유저 상태 변경", description = "관리자가 유저의 상태를 변경합니다. (ACTIVE, SUSPENDED, DELETED)") + public ResponseDto updateUserStatus( + @PathVariable Long userId, + @Valid @RequestBody UpdateUserStatusRequestDTO request, + @AuthenticationPrincipal UserDetails userDetails + ) { + userService.updateUserStatus(userId, request, userDetails.getUsername()); + return ResponseDto.success("유저 상태가 변경되었습니다."); + } } diff --git a/src/main/java/com/onebyone/kindergarten/domain/user/dto/request/UpdateUserStatusRequestDTO.java b/src/main/java/com/onebyone/kindergarten/domain/user/dto/request/UpdateUserStatusRequestDTO.java new file mode 100644 index 0000000..c610ae3 --- /dev/null +++ b/src/main/java/com/onebyone/kindergarten/domain/user/dto/request/UpdateUserStatusRequestDTO.java @@ -0,0 +1,20 @@ +package com.onebyone.kindergarten.domain.user.dto.request; + +import com.onebyone.kindergarten.domain.user.enums.UserStatus; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@Schema(description = "유저 상태 변경 요청 DTO") +public class UpdateUserStatusRequestDTO { + + @NotNull(message = "상태는 필수입니다.") + @Schema(description = "변경할 유저 상태", example = "ACTIVE") + private UserStatus status; + + @Schema(description = "상태 변경 사유", example = "부적절한 게시물 작성으로 인한 정지") + private String reason; +} diff --git a/src/main/java/com/onebyone/kindergarten/domain/user/entity/User.java b/src/main/java/com/onebyone/kindergarten/domain/user/entity/User.java index c5e7e4d..9db202e 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/user/entity/User.java +++ b/src/main/java/com/onebyone/kindergarten/domain/user/entity/User.java @@ -200,4 +200,14 @@ public void markAsReviewWriter() { public boolean hasWrittenReview() { return this.hasWrittenReview != null && this.hasWrittenReview; } + + /// 유저 상태 변경 (관리자용) + public void updateStatus(UserStatus status) { + this.status = status; + if (status == UserStatus.SUSPENDED) { + // TODO : 정지 시 특별한 처리가 필요하다면 여기에 추가 + } else if (status == UserStatus.ACTIVE) { + // TODO : 활성화 시 특별한 처리가 필요하다면 여기에 추가 + } + } } diff --git a/src/main/java/com/onebyone/kindergarten/domain/user/service/UserService.java b/src/main/java/com/onebyone/kindergarten/domain/user/service/UserService.java index a75f4cb..b809816 100644 --- a/src/main/java/com/onebyone/kindergarten/domain/user/service/UserService.java +++ b/src/main/java/com/onebyone/kindergarten/domain/user/service/UserService.java @@ -1,12 +1,7 @@ package com.onebyone.kindergarten.domain.user.service; import com.onebyone.kindergarten.domain.user.dto.*; -import com.onebyone.kindergarten.domain.user.dto.request.CheckEmailCertificationRequestDTO; -import com.onebyone.kindergarten.domain.user.dto.request.ModifyUserNicknameRequestDTO; -import com.onebyone.kindergarten.domain.user.dto.request.ModifyUserPasswordRequestDTO; -import com.onebyone.kindergarten.domain.user.dto.request.SignInRequestDTO; -import com.onebyone.kindergarten.domain.user.dto.request.SignUpRequestDTO; -import com.onebyone.kindergarten.domain.user.dto.request.UpdateUserRoleRequestDTO; +import com.onebyone.kindergarten.domain.user.dto.request.*; import com.onebyone.kindergarten.domain.user.dto.response.AppleUserResponse; import com.onebyone.kindergarten.domain.user.dto.response.KakaoUserResponse; import com.onebyone.kindergarten.domain.user.dto.response.NaverUserResponse; @@ -28,7 +23,6 @@ import java.util.Set; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import com.onebyone.kindergarten.domain.user.dto.request.UserSearchDTO; import com.onebyone.kindergarten.domain.user.dto.response.AdminUserResponseDTO; @Service @@ -478,4 +472,26 @@ public AdminUserResponseDTO getUserById(Long userId) { .orElseThrow(() -> new RuntimeException("사용자를 찾을 수 없습니다. ID: " + userId)); return AdminUserResponseDTO.from(user); } + + /// 관리자용 - 유저 상태 변경 + @Transactional + public void updateUserStatus(Long userId, UpdateUserStatusRequestDTO request, String adminEmail) { + // 관리자 권한 확인 + User admin = getUserByEmail(adminEmail); + if (!admin.getRole().equals(UserRole.ADMIN)) { + throw new BusinessException(ErrorCodes.UNAUTHORIZED_DELETE); + } + + // 대상 유저 조회 + User targetUser = userRepository.findById(userId) + .orElseThrow(() -> new BusinessException(ErrorCodes.NOT_FOUND_EMAIL)); + + // 관리자는 자신의 상태를 변경할 수 없음 + if (targetUser.getRole().equals(UserRole.ADMIN)) { + throw new BusinessException(ErrorCodes.UNAUTHORIZED_DELETE); + } + + // 상태 변경 + targetUser.updateStatus(request.getStatus()); + } }