diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java index 91be6d7..4ab2a8f 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java @@ -20,22 +20,21 @@ * @param pairId 取得する対象のフレンドペアのID * @return IDに紐づけられているフレンドペアが存在すればそのペア、存在しなければnull */ - public FriendPair getFriend(int pairId) { + public FriendPair find(int pairId) { return friends.get(pairId); } /** - * 渡された二つのユーザーIDから新しいフレンドのペアを作成し追加する + * 渡されたフレンドのペアを追加する * - * @param user0Id フレンドとして追加するユーザーのユーザーID - * @param user1Id フレンドとして追加するユーザーのユーザーID - * @return 新しく作成したフレンドペア + * @param pair 追加するフレンドペア + * @return 追加したフレンドペア */ - public FriendPair addFriend(String user0Id, String user1Id) { + public FriendPair create(FriendPair pair) { lastPairId++; - FriendPair newPair = new FriendPair(lastPairId, user0Id, user1Id); - friends.put(newPair.getId(), newPair); - return newPair; + pair.setId(lastPairId); + friends.put(pair.getId(), pair); + return pair; } /** @@ -44,7 +43,7 @@ * @param pairId 削除する対象のフレンドペアのID * @return 削除できたらtrue、削除できなければfalse */ - public boolean removeFriend(int pairId) { + public boolean delete(int pairId) { FriendPair removedPair = friends.remove(pairId); return removedPair != null; } diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/FriendRequestRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/FriendRequestRepository.java index 61cb942..e132740 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/FriendRequestRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/FriendRequestRepository.java @@ -19,22 +19,31 @@ * * @return すべてのフレンドリクエスト */ - public Collection getFriendRequests() { + public Collection findAll() { return friendRequests.values(); } /** - * 渡された二つのユーザーIDから新しいフレンドリクエストを作成し追加する + * 渡されたフレンドリクエストIDに一致するリクエストを返す * - * @param senderId フレンドリクエストを送ったユーザーのユーザーID - * @param receiverId フレンドリクエストを受け取ったユーザーのユーザーID - * @return 新しく作成したフレンドリクエスト + * @param id 削除する対象のフレンドリクエストのID + * @return 存在したらそのリクエストのインスタンス、存在しなければnull */ - public FriendRequest addFriendRequest(String senderId, String receiverId) { + public FriendRequest find(int id) { + return friendRequests.get(id); + } + + /** + * フレンドリクエストを追加する + * + * @param friendRequest 追加するフレンドリクエスト + * @return 追加したフレンドリクエスト + */ + public FriendRequest create(FriendRequest friendRequest) { lastId++; - FriendRequest newRequest = new FriendRequest(lastId, senderId, receiverId); - friendRequests.put(newRequest.getId(), newRequest); - return newRequest; + friendRequest.setId(lastId); + friendRequests.put(friendRequest.getId(), friendRequest); + return friendRequest; } /** @@ -43,7 +52,7 @@ * @param id 削除する対象のフレンドリクエストのID * @return 削除できたらtrue、削除できなければfalse */ - public boolean removeFriendRequest(int id) { + public boolean delete(int id) { FriendRequest removedRequest = friendRequests.remove(id); return removedRequest != null; } 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..2cd7576 --- /dev/null +++ b/src/main/java/org/ntlab/tampoposerver/services/FriendService.java @@ -0,0 +1,95 @@ +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 createFriendRequest(String token, String senderId, String receiverId) { + return Optional.empty(); + } + + /** + * ユーザー自身に関連するフレンドリクエストをすべて返す + * + * @param token ユーザー認証用のトークン + * @return ユーザー自身に関連するすべてのフレンドリクエストのインスタンス(リクエストがなければ空のリスト) + */ + public ArrayList 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 createFriendPair(String token, String user0Id, String user1Id) { + return Optional.empty(); + } + + /** + * 指定したフレンドのペアを取得する + * + * @param token APIリクエストをしてきたユーザーの認証用トークン + * @param friendPairId 取得する対象のフレンドペアのID + * @return 渡したフレンドペアのIDに対応したフレンドペア + */ + public Optional 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; + } +}