diff --git a/backend-services/friend-service/src/Friends/FriendManager.ts b/backend-services/friend-service/src/Friends/FriendManager.ts new file mode 100644 index 0000000000000000000000000000000000000000..96b1d4c9306f30b6fef0a28e7a9d6755268269d0 --- /dev/null +++ b/backend-services/friend-service/src/Friends/FriendManager.ts @@ -0,0 +1,21 @@ +import FriendDataStore from "../Datastores/FriendDataStore"; +import { Friend } from "../Types/Friend"; + +/** + * Class to handle all friend functionality + */ +export class FriendManager { + + public AddFriend = async (user1: string, user2: string): Promise<Friend> => { + return await FriendDataStore.newFriend(user1, user2); + } + + public GetFriendIds = async (userId: string): Promise<string[]> => { + const friends = await FriendDataStore.getFriends(userId); + return friends.friends1.map(f => f.User2).concat(friends.friends2.map(f => f.User1)); + } + + public RemoveFriend = async (user1: string, user2: string): Promise<void> => { + return await FriendDataStore.RemoveFriend(user1, user2); + } +} \ No newline at end of file