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);
}
}