Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void deleteSentRequest(final FriendRequest friendSendRequest) {
User currentUser = userUtil.getUser();
User toUser = userQueryService.getUserById(friendSendRequest.receiverId());

Friend friend = friendRepository.findByFromUserAndToUserAndStatus(toUser, currentUser, PENDING)
Friend friend = friendRepository.findByFromUserAndToUserAndStatus(currentUser, toUser, PENDING)
.orElseThrow(() -> new GlobalException(NO_PENDING_LIST));

if (!friend.getFromUser().equals(currentUser)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package ku_rum.backend.domain.notice.application;

import static ku_rum.backend.global.support.status.BaseExceptionResponseStatus.NO_SUCH_NOTICE;
import static ku_rum.backend.global.support.status.BaseExceptionResponseStatus.NO_SUCH_NOTICE_DETAIL;

import java.util.List;
import java.util.Optional;
import ku_rum.backend.domain.bookmark.domain.NoticeBookmark;
import ku_rum.backend.domain.bookmark.domain.repository.BookmarkRepository;
import ku_rum.backend.domain.notice.domain.Notice;
Expand All @@ -20,12 +25,6 @@
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

import static ku_rum.backend.global.support.status.BaseExceptionResponseStatus.NO_SUCH_NOTICE;
import static ku_rum.backend.global.support.status.BaseExceptionResponseStatus.NO_SUCH_NOTICE_DETAIL;

@Service
@RequiredArgsConstructor
public class NoticeService {
Expand All @@ -50,11 +49,14 @@ public NoticeDetailResponse findByNoticeId(Long noticeId) {
NoticeDetail noticeDetail = noticeDetailRepository.findByNotice(notice)
.orElseThrow(() -> new GlobalException(NO_SUCH_NOTICE_DETAIL));
String encodedHtml = noticeDetail.getHtmlContent();
Optional<NoticeBookmark> noticeBookmark = bookmarkRepository.findByUserAndNotice(user, notice);
if(noticeBookmark.isPresent()) {
return new NoticeDetailResponse(noticeDetail.getNotice().getId(), encodedHtml, notice.getLink(), noticeDetail.getNotice().getTitle(), noticeDetail.getNotice().getPubDate(), noticeBookmark.get().getId(), true);
Optional<NoticeBookmark> noticeBookmark = bookmarkRepository.findByUserAndNotice(user, notice);
if (noticeBookmark.isPresent()) {
return new NoticeDetailResponse(noticeDetail.getNotice().getId(), encodedHtml, notice.getLink(),
noticeDetail.getNotice().getTitle(), noticeDetail.getNotice().getPubDate(),
noticeBookmark.get().getId(), true);
}
return new NoticeDetailResponse(noticeDetail.getNotice().getId(), encodedHtml, notice.getLink(), noticeDetail.getNotice().getTitle(), noticeDetail.getNotice().getPubDate(), -1L, false);
return new NoticeDetailResponse(noticeDetail.getNotice().getId(), encodedHtml, notice.getLink(),
noticeDetail.getNotice().getTitle(), noticeDetail.getNotice().getPubDate(), -1L, false);
}

public Notice findNoticeByNoticeId(Long noticeId) {
Expand Down
35 changes: 25 additions & 10 deletions src/main/java/ku_rum/backend/domain/user/domain/User.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
package ku_rum.backend.domain.user.domain;

import jakarta.persistence.*;
import static ku_rum.backend.domain.user.domain.UserRole.USER;

import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.util.ArrayList;
import java.util.List;
import ku_rum.backend.domain.department.domain.Department;
import ku_rum.backend.domain.oauth.domain.OAuth2MemberInfo;
import ku_rum.backend.domain.oauth.domain.ProviderType;
import ku_rum.backend.domain.user.dto.request.UserSaveRequest;
import ku_rum.backend.global.support.type.BaseEntity;
import lombok.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.SQLDelete;

import java.util.ArrayList;
import java.util.List;

import static ku_rum.backend.domain.user.domain.UserRole.*;

@Getter
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
Expand Down Expand Up @@ -80,10 +91,13 @@ public void changeActiveBuildingName(String buildingName) {
this.activeBuildingName = buildingName;
}

public void setLocationSharingActive(boolean value) { this.active = value;}
public void setLocationSharingActive(boolean value) {
this.active = value;
}

@Builder
private User(String loginId, String oauthId, String email, String nickname, String password, String studentId, AgreementStatus agreementStatus, ProviderType providerType, String imageUrl) {
private User(String loginId, String oauthId, String email, String nickname, String password, String studentId,
AgreementStatus agreementStatus, ProviderType providerType, String imageUrl) {
this.loginId = loginId;
this.oauthId = oauthId;
this.email = email;
Expand All @@ -106,7 +120,8 @@ public void changeProfile(UserSaveRequest userSaveRequest, String password) {
firstLogin = false;
}

public static User of(String loginId, String email, String nickname, String password, String studentId, Department department, AgreementStatus agreementStatus, ProviderType providerType) {
public static User of(String loginId, String email, String nickname, String password, String studentId,
Department department, AgreementStatus agreementStatus, ProviderType providerType) {
return User.builder()
.loginId(loginId)
.email(email)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,15 +134,15 @@ void rejectFriendRequest() throws Exception {
@DisplayName("보낸 친구 요청 삭제 API")
@WithMockUser
void deleteFriendRequest() throws Exception {
Long requestId = 1L;
FriendRequest request = new FriendRequest(requestId); // FriendRequest DTO에 맞게 생성자/빌더 필요
Long receiverId = 1L;
FriendRequest request = new FriendRequest(receiverId); // FriendRequest DTO에 맞게 생성자/빌더 필요

doNothing().when(friendManageService).deleteSentRequest(request);

mockMvc.perform(delete("/api/v1/friends/request")
.header("Authorization", "Bearer your.jwt.token")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"requestId\":1}"))
.content("{\"receiverId\":1}"))
.andDo(print())
.andExpect(status().isOk())
.andExpectAll(RestDocsTestUtils.expectCommonSuccess())
Expand All @@ -154,7 +154,7 @@ void deleteFriendRequest() throws Exception {
headerWithName("Authorization").description("발급 받은 엑세스 토큰입니다.")
)
.requestFields(
fieldWithPath("requestId").description("삭제할 친구 요청 ID")
fieldWithPath("receiverId").description("삭제할 친구 요청 ID")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

API 문서 설명이 부정확합니다.

필드명은 receiverId이지만 설명은 "삭제할 친구 요청 ID"로 되어 있어 혼란을 줄 수 있습니다. receiverId는 요청 엔티티의 ID가 아닌 수신자의 사용자 ID이므로, 설명을 명확히 수정해야 합니다.

🔎 제안하는 수정
-                                        fieldWithPath("receiverId").description("삭제할 친구 요청 ID")
+                                        fieldWithPath("receiverId").description("친구 요청을 받은 사용자 ID")
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
fieldWithPath("receiverId").description("삭제할 친구 요청 ID")
fieldWithPath("receiverId").description("친구 요청을 받은 사용자 ID")
🤖 Prompt for AI Agents
In
@src/test/java/ku_rum/backend/domain/friend/presentation/FriendManageControllerTest.java
around line 157, Update the API test assertion in FriendManageControllerTest
that uses fieldWithPath("receiverId") to use a clear description reflecting that
receiverId is the recipient user's ID (예: "수신자 사용자 ID" or "수신자의 사용자 ID"),
replacing the current misleading "삭제할 친구 요청 ID" text so the documentation
correctly describes the field as the recipient's user ID rather than a
request/entity ID.

)
.responseFields(RestDocsFieldSnippets.COMMON_RESPONSE_FIELDS)
.build())
Expand Down
Loading