-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusers.js
More file actions
68 lines (57 loc) · 1.2 KB
/
Copy pathusers.js
File metadata and controls
68 lines (57 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const winConfig = require('./config/winston.config');
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.Console(winConfig.console)
],
});
const Users = (foo = () =>{
const users = new Map();
function addUser(id, user){
users.set(id, user);
}
function removeUser(id){
users.delete(id);
}
function changeRoom(id, room){
const user = users.get(id);
if(user){
user.room = room;
users.set(id, user);
} else {
logger.error('bad id passed to change room');
}
return user;
}
function getUserList(){
const userList = Array.from(users.values());
return userList;
}
function getUsernameById(id){
const user = users.get(id);
return user.name;
}
function getIdByUsername(username){
let userId = null;
users.forEach((value, key) => {
if(username === value.name){
userId= key;
}
});
return userId;
}
function getUser(id){
const user = users.get(id);
return user;
}
return {
addUser,
removeUser,
changeRoom,
getUser,
getUserList,
getUsernameById,
getIdByUsername
}
})();
module.exports = Users;