diff --git a/src/server.js b/src/server.js index fa6572d..4a63fcb 100644 --- a/src/server.js +++ b/src/server.js @@ -62,6 +62,8 @@ server.create = function create() { let address = user.getAddress() socket.write(`001 ${user.nickname} :Welcome to the example IRC Project ${user.nickname}!~${user.username}@${address}`) break; + case "QUIT": + server.closeConnection(user) default: console.error(`Unknown command: ${command}`); } @@ -77,6 +79,19 @@ server.create = function create() { return userlist } + server.getUserObjectFromNickName = function (nickname) { + user_list = server.getUserlist() + if (nickname in user_list) + return user_list[nickname] + } + + server.closeConnection = function (user_nickname) { + console.log(user_nickname) + userObject = server.getUserObjectFromNickName(user_nickname) + userObject.closeConnection() + delete server.getUserlist()[user_nickname] + } + return server } diff --git a/src/user.js b/src/user.js index a71219f..7f0b2ef 100644 --- a/src/user.js +++ b/src/user.js @@ -22,6 +22,28 @@ function User(socket) { this.getAddress = function() { return this.connection.address().address } + this.setNickname = function (nickname) { + this.nickname = nickname + } + this.setRealName = function (realname) { + this.realname = realname + } + + this.quit = function (quit_message) { + if (quit_message === undefined) + this.sendMessage("QUIT") + else this.sendMessage(("QUIT :" + quit_message)) + } + + this.closeConnection = function () { + socket.close() + } + + this.sendMessage = function (message) { + connection.write(message) + } + + } module.exports = User diff --git a/test/command_nick.js b/test/command_nick.js index 5fb8733..19b0fd1 100644 --- a/test/command_nick.js +++ b/test/command_nick.js @@ -56,8 +56,6 @@ describe("NICK no NICK given", function () { done("Destroyed socket without answering") } - console.log(server.getUserObjectFromNickName("some_nick")) - server.emit("connection", mockedSock) mockedSock.emit('data', Buffer.from("NICK \r\n", "ascii")) })