package org.ntlab.tampoposerver.services; import org.ntlab.tampoposerver.models.FriendPair; import org.ntlab.tampoposerver.models.FriendRequest; 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; import java.util.Optional; // MEMO: ユーザーのトークンを認証するところはUserRepositoryに任せる // MEMO: フレンド系の操作で認証が必要な場合はここで対応する @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 APIリクエストをしてきたユーザーの認証用トークン * @param senderId フレンドリクエストを送ったユーザーのユーザーID * @param receiverId フレンドリクエストを受け取ったユーザーのユーザーID * @return 作成されたフレンドリクエストのインスタンス */ public Optional<FriendRequest> createFriendRequest(String token, String senderId, String receiverId) { return Optional.empty(); } /** * ユーザー自身に関連するフレンドリクエストをすべて返す * * @param token ユーザー認証用のトークン * @return ユーザー自身に関連するすべてのフレンドリクエストのインスタンス(リクエストがなければ空のリスト) */ public ArrayList<FriendRequest> getFriendRequests(String token) { return new ArrayList<>(); } /** * 指定したフレンドリクエストを削除する * * @param token APIリクエストをしてきたユーザーの認証用トークン * @param friendRequestId 削除する対象のフレンドリクエストのID * @return 削除に成功したらtrue, それ以外はfalse */ public boolean removeFriendRequest(String token, int friendRequestId) { return false; } /** * 新しくフレンドペアを作成する * * @param token APIリクエストをしてきたユーザーの認証用トークン * @param user0Id 片方のユーザーのユーザーID * @param user1Id もう一方のユーザーのユーザーID * @return 追加されたフレンドペアのインスタンス */ public Optional<FriendPair> createFriendPair(String token, String user0Id, String user1Id) { return Optional.empty(); } /** * 指定したフレンドのペアを取得する * * @param token APIリクエストをしてきたユーザーの認証用トークン * @param friendPairId 取得する対象のフレンドペアのID * @return 渡したフレンドペアのIDに対応したフレンドペア */ public Optional<FriendPair> getFriendPair(String token, int friendPairId) { return Optional.empty(); } /** * 指定したフレンドのペアを削除する * * @param token APIリクエストをしてきたユーザーの認証用トークン * @param friendPairId 削除する対象のフレンドペアのID * @return 削除に成功したらtrue, それ以外はfalse */ public boolean removeFriendPair(String token, int friendPairId) { return false; } }