diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java new file mode 100644 index 0000000..91be6d7 --- /dev/null +++ b/src/main/java/org/ntlab/tampoposerver/repositories/FriendRepository.java @@ -0,0 +1,51 @@ +package org.ntlab.tampoposerver.repositories; + +import org.ntlab.tampoposerver.models.FriendPair; +import org.springframework.stereotype.Repository; + +import java.util.HashMap; +import java.util.Map; + +@Repository +public class FriendRepository { + /* フレンドペアのIDからフレンドペアへの写像 */ + private final Map friends = new HashMap<>(); + + /* 最後に追加されたフレンドペアのID */ + private int lastPairId = -1; + + /** + * 渡されたIDに紐づけられているフレンドペアを取得する + * + * @param pairId 取得する対象のフレンドペアのID + * @return IDに紐づけられているフレンドペアが存在すればそのペア、存在しなければnull + */ + public FriendPair getFriend(int pairId) { + return friends.get(pairId); + } + + /** + * 渡された二つのユーザーIDから新しいフレンドのペアを作成し追加する + * + * @param user0Id フレンドとして追加するユーザーのユーザーID + * @param user1Id フレンドとして追加するユーザーのユーザーID + * @return 新しく作成したフレンドペア + */ + public FriendPair addFriend(String user0Id, String user1Id) { + lastPairId++; + FriendPair newPair = new FriendPair(lastPairId, user0Id, user1Id); + friends.put(newPair.getId(), newPair); + return newPair; + } + + /** + * 渡されたIDに紐づけられているフレンドペアを削除する + * + * @param pairId 削除する対象のフレンドペアのID + * @return 削除できたらtrue、削除できなければfalse + */ + public boolean removeFriend(int pairId) { + FriendPair removedPair = friends.remove(pairId); + return removedPair != null; + } +}