import Logger, { LoggerType } from '#application/logger' import { User } from '#entities/user' type TLoggedInUsers = { users: User[] } class UserManager { private loggedInUsers: TLoggedInUsers[] = [] private logger = Logger.type(LoggerType.APP) // Method to initialize user manager public async boot() { this.logger.info('User manager loaded') } // Function that adds user to logged in users public loginUser(user: User) { this.loggedInUsers.push({ users: [user] }) } // Function that checks if a user is already logged in public findUser(user: User) { return this.loggedInUsers.find((loggedInUser) => { return loggedInUser.users.includes(user) }) } // Function that lists all logged in users public listUsers() { return this.loggedInUsers.map((loggedInUser) => { return loggedInUser.users }) } } export default new UserManager()