Skip to content

Commit

Permalink
Merge pull request #100 from Leets-Official/fix/#71/응답-필드명-변경
Browse files Browse the repository at this point in the history
Fix #100 친구 API 수정
  • Loading branch information
koreaioi authored Feb 4, 2025
2 parents 7894d38 + 1869057 commit bae896f
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
import com.gachtaxi.domain.friend.service.FriendService;
import com.gachtaxi.global.auth.jwt.annotation.CurrentMemberId;
import com.gachtaxi.global.common.response.ApiResponse;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import static com.gachtaxi.domain.friend.controller.ResponseMessage.*;
import static com.gachtaxi.domain.friend.entity.enums.FriendStatus.REJECTED;
import static org.springframework.http.HttpStatus.OK;

@RestController
Expand All @@ -20,6 +22,7 @@ public class FriendController {
private final FriendService friendService;

@PostMapping
@Operation(summary = "친구 요청을 보내는 API 받는 이의 nickName을 입력해주세요")
public ApiResponse<Void> sendFriendRequest(
@CurrentMemberId Long senderId,
@RequestBody FriendRequestDto dto
Expand All @@ -30,31 +33,37 @@ public ApiResponse<Void> sendFriendRequest(

// 나의 친구를 반환하는 API
@GetMapping
@Operation(summary = "친구 목록을 반환하는 API입니다. (무한스크롤)")
public ApiResponse<FriendsSliceResponse> getFriendsList(
@CurrentMemberId Long memberId,
@RequestParam int pageNum,
@RequestParam int pageSize
@RequestParam String pageNum,
@RequestParam String pageSize
){
FriendsSliceResponse response = friendService.findFriendsListByMemberId(memberId, pageNum, pageSize);
FriendsSliceResponse response = friendService.findFriendsListByMemberId(memberId, Integer.parseInt(pageNum), Integer.parseInt(pageSize));
return ApiResponse.response(OK, FRIEND_LIST_SUCCESS.getMessage(), response);
}

@PatchMapping
public ApiResponse<Void> acceptFriendRequest(
@PatchMapping("")
@Operation(summary = "친구 요청을 수락/거절하는 API입니다.")
public ApiResponse<Void> updateFriendRequest(
@CurrentMemberId Long currentId,
@RequestBody FriendUpdateDto dto
){
friendService.updateFriendStatus(dto.memberId(), currentId); // 친구 요청 보낸 사람(dto), 받은 사람(토큰 추출)
friendService.updateFriendRequest(dto, currentId); // 친구 요청 보낸 사람(dto), 받은 사람(토큰 추출)
if(dto.status() == REJECTED){
return ApiResponse.response(OK, FRIEND_STATUS_REJECTED.getMessage());
}

return ApiResponse.response(OK, FRIEND_STATUS_ACCEPTED.getMessage());
}

@DeleteMapping("/{memberId}")
@Operation(summary = "친구를 삭제하는 API입니다.")
public ApiResponse<Void> deleteFriend(
@CurrentMemberId Long currentId,
@PathVariable Long memberId
) {
friendService.deleteFriend(currentId, memberId);

return ApiResponse.response(OK, FRIEND_DELETE.getMessage());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package com.gachtaxi.domain.friend.dto.request;

import com.gachtaxi.domain.friend.entity.enums.FriendStatus;
import jakarta.validation.constraints.NotNull;

public record FriendUpdateDto(
@NotNull Long memberId
@NotNull Long memberId,
@NotNull String notificationId,
@NotNull FriendStatus status
) {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.gachtaxi.domain.friend.entity.enums;

public enum FriendStatus {
PENDING, ACCEPTED
PENDING, ACCEPTED, REJECTED
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.gachtaxi.domain.friend.service;

import com.gachtaxi.domain.friend.dto.request.FriendRequestDto;
import com.gachtaxi.domain.friend.dto.request.FriendUpdateDto;
import com.gachtaxi.domain.friend.dto.response.FriendsPageableResponse;
import com.gachtaxi.domain.friend.dto.response.FriendsResponseDto;
import com.gachtaxi.domain.friend.dto.response.FriendsSliceResponse;
Expand All @@ -26,6 +27,7 @@

import java.util.List;

import static com.gachtaxi.domain.friend.entity.enums.FriendStatus.REJECTED;
import static com.gachtaxi.domain.notification.entity.enums.NotificationType.FRIEND_REQUEST;

@Slf4j
Expand All @@ -45,7 +47,6 @@ public void sendFriendRequest(Long senderId, FriendRequestDto dto) {
Members sender = memberService.findById(senderId);
Members receiver = memberService.findByNickname(dto.nickName());


checkDuplicatedFriendShip(senderId, receiver.getId());
friendRepository.save(Friends.of(sender, receiver));

Expand All @@ -72,9 +73,15 @@ public FriendsSliceResponse findFriendsListByMemberId(Long memberId, int pageNum
}

@Transactional
public void updateFriendStatus(Long senderId, Long receiverId) {
Friends friendShip = findBySenderIdAndReceiverId(senderId, receiverId);
friendShip.updateStatus();
public void updateFriendRequest(FriendUpdateDto dto, Long receiverId) {
Friends friendShip = findBySenderIdAndReceiverId(dto.memberId(), receiverId);
notificationService.delete(receiverId, dto.notificationId());

if(dto.status() == REJECTED){
friendRepository.delete(friendShip);
}else{
friendShip.updateStatus();
}
}

@Transactional
Expand Down

0 comments on commit bae896f

Please sign in to comment.