39 lines
855 B
TypeScript
39 lines
855 B
TypeScript
import { User } from '@prisma/client'
|
|
import { appLogger } from '../utilities/logger'
|
|
|
|
type TLoggedInUsers = {
|
|
users: User[]
|
|
}
|
|
|
|
class UserManager {
|
|
private loggedInUsers: TLoggedInUsers[] = []
|
|
|
|
// Method to initialize user manager
|
|
public async boot() {
|
|
appLogger.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()
|