server/src/managers/userManager.ts
2025-02-07 01:08:40 +01:00

40 lines
913 B
TypeScript

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()