diff --git a/nginx/public/index.html b/nginx/public/index.html index 5443216..bb04a0f 100644 --- a/nginx/public/index.html +++ b/nginx/public/index.html @@ -13,6 +13,8 @@

Welcome!

Name

+

why u here

+

diff --git a/nginx/public/officeHours.js b/nginx/public/officeHours.js index 3514c14..8e03c62 100644 --- a/nginx/public/officeHours.js +++ b/nginx/public/officeHours.js @@ -11,7 +11,7 @@ function displayQueue(queueJSON) { const queue = JSON.parse(queueJSON); let formattedQueue = ""; for (const student of queue) { - formattedQueue += student['username'] + " has been waiting since " + student['timestamp'] + "
" + formattedQueue += student['username'] + " has been waiting since " + student['timestamp'] + " for reason: " + student['description'] + "
" } document.getElementById("queue").innerHTML = formattedQueue; } @@ -19,8 +19,10 @@ function displayQueue(queueJSON) { function enterQueue() { let name = document.getElementById("name").value; - socket.emit("enter_queue", name); + let description = document.getElementById("description").value; + socket.emit("enter_queue", name + "::" + description); document.getElementById("name").value = ""; + document.getElementById("description").value = ""; } function readyToHelp() { diff --git a/src/main/scala/model/OfficeHoursServer.scala b/src/main/scala/model/OfficeHoursServer.scala index 09ef61b..eb9268d 100644 --- a/src/main/scala/model/OfficeHoursServer.scala +++ b/src/main/scala/model/OfficeHoursServer.scala @@ -16,6 +16,7 @@ class OfficeHoursServer() { var usernameToSocket: Map[String, SocketIOClient] = Map() var socketToUsername: Map[SocketIOClient, String] = Map() + var userDescription: Map[SocketIOClient, String] = Map() val config: Configuration = new Configuration { setHostname("0.0.0.0") @@ -59,10 +60,13 @@ class DisconnectionListener(server: OfficeHoursServer) extends DisconnectListene class EnterQueueListener(server: OfficeHoursServer) extends DataListener[String] { - override def onData(socket: SocketIOClient, username: String, ackRequest: AckRequest): Unit = { - server.database.addStudentToQueue(StudentInQueue(username, System.nanoTime())) + override def onData(socket: SocketIOClient, userdesc: String, ackRequest: AckRequest): Unit = { + val username = userdesc.split("::")(0) + val description = userdesc.split("::")(1) + server.database.addStudentToQueue(StudentInQueue(username, System.nanoTime(), description)) server.socketToUsername += (socket -> username) server.usernameToSocket += (username -> socket) + server.userDescription += (socket -> description) server.server.getBroadcastOperations.sendEvent("queue", server.queueJSON()) } } diff --git a/src/main/scala/model/StudentInQueue.scala b/src/main/scala/model/StudentInQueue.scala index 464108f..b16f15e 100644 --- a/src/main/scala/model/StudentInQueue.scala +++ b/src/main/scala/model/StudentInQueue.scala @@ -16,19 +16,20 @@ object StudentInQueue { output } - def apply(username: String, timestamp: Long): StudentInQueue = { - new StudentInQueue(cleanString(username), timestamp) + def apply(username: String, timestamp: Long, description: String): StudentInQueue = { + new StudentInQueue(cleanString(username), timestamp, description) } } -class StudentInQueue(val username: String, val timestamp: Long) { +class StudentInQueue(val username: String, val timestamp: Long, val description: String) { def asJsValue(): JsValue ={ val messageMap: Map[String, JsValue] = Map( "username" -> Json.toJson(username), - "timestamp" -> Json.toJson(timestamp) + "timestamp" -> Json.toJson(timestamp), + "description" -> Json.toJson(description) ) Json.toJson(messageMap) } diff --git a/src/main/scala/model/database/Database.scala b/src/main/scala/model/database/Database.scala index bbc9f7a..21aa659 100644 --- a/src/main/scala/model/database/Database.scala +++ b/src/main/scala/model/database/Database.scala @@ -47,9 +47,10 @@ class Database extends DatabaseAPI{ var queue: List[StudentInQueue] = List() while (result.next()) { - val username = result.getString("username") + val username = result.getString("username").split("::")(0) + val description = result.getString("username").split("::")(1) val timestamp = result.getLong("timestamp") - queue = new StudentInQueue(username, timestamp) :: queue + queue = new StudentInQueue(username, timestamp, description) :: queue } queue.reverse