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<FriendRequest> getFriendRequests(String token) { // TODO: ユーザーリポジトリの実装待ち User user = userRepository.findUserByToken(token); User user = null; if (user == null) { return null; } ArrayList<FriendRequest> 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); } }