38 lines
890 B
TypeScript
38 lines
890 B
TypeScript
import {User} from "@prisma/client";
|
|
|
|
type TLoggedInUsers = {
|
|
users: User[];
|
|
}
|
|
|
|
class UserManager {
|
|
private loggedInUsers: TLoggedInUsers[] = [];
|
|
|
|
// Method to initialize user manager
|
|
public async boot() {
|
|
console.log('[✅] User manager loaded');
|
|
}
|
|
|
|
// Function that adds user to logged in users
|
|
public addUser(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();
|