From 4825c66d2df13d21f4a2998c73733ffa350c1cb5 Mon Sep 17 00:00:00 2001
From: Matt Kirby <MattJKirby@outlook.com>
Date: Sat, 15 Apr 2023 01:28:37 +0100
Subject: [PATCH] Added friendManager class

---
 .../src/Friends/FriendManager.ts              | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 backend-services/friend-service/src/Friends/FriendManager.ts

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 00000000..96b1d4c9
--- /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
-- 
GitLab