diff --git a/src/main/java/org/ntlab/tampoposerver/services/FriendService.java b/src/main/java/org/ntlab/tampoposerver/services/FriendService.java new file mode 100644 index 0000000..fbcd3d4 --- /dev/null +++ b/src/main/java/org/ntlab/tampoposerver/services/FriendService.java @@ -0,0 +1,72 @@ +package org.ntlab.tampoposerver.services; + +import org.ntlab.tampoposerver.models.FriendRequest; +import org.ntlab.tampoposerver.models.User; +import org.ntlab.tampoposerver.repositories.FriendRepository; +import org.ntlab.tampoposerver.repositories.FriendRequestRepository; +import org.ntlab.tampoposerver.repositories.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; + +@Service +public class FriendService { + private final UserRepository userRepository; + private final FriendRepository friendRepository; + private final FriendRequestRepository friendRequestRepository; + + @Autowired + public FriendService(UserRepository userRepository, FriendRepository friendRepository, FriendRequestRepository friendRequestRepository) { + this.userRepository = userRepository; + this.friendRepository = friendRepository; + this.friendRequestRepository = friendRequestRepository; + } + + /** + * ユーザー自身に関連するフレンドリクエストをすべて返す + * + * @param token ユーザー認証用のトークン + * @return ユーザー自身に関連するすべてのフレンドリクエスト(ユーザートークンが無効だったらnull、リクエストがなければ空のリスト) + */ + public ArrayList getFriendRequests(String token) { + // TODO: ユーザーリポジトリの実装待ち User user = userRepository.findUserByToken(token); + User user = null; + if (user == null) { + return null; + } + + ArrayList friendRequests = new ArrayList<>(); + for (FriendRequest request : friendRequestRepository.getFriendRequests()) { + // TODO: ユーザーモデルの実装待ち +// if (request.getSenderId().equals(user.getId()) || request.getReceiverId().equals(user.getId())) { +// friendRequests.add(request); +// } + } + return friendRequests; + } + + /** + * + * @param token APIリクエストをしてきたユーザーの認証用トークン + * @param senderId フレンドリクエストを送ったユーザーのユーザーID + * @param receiverId フレンドリクエストを受け取ったユーザーのユーザーID + * @return TODO: comment + */ + public FriendRequest addFriendRequest(String token, String senderId, String receiverId) { + // TODO: ユーザーリポジトリの実装待ち User operatedUser = userRepository.findUserByToken(token); + // TODO: ユーザーリポジトリの実装待ち User sender = userRepository.findUserById(token); + // TODO: ユーザーリポジトリの実装待ち User receiver = userRepository.findUserById(token); + User operatedUser = null; + User sender = null; + User receiver = null; + if (operatedUser == null || senderId == null || receiverId == null) { + return null; + } + if (!operatedUser.equals(sender)) { + return null; + } + + return friendRequestRepository.addFriendRequest(senderId, receiverId); + } +}