// GetTopHandle implements the handle for the top document (GET). func GetTopHandle(newConn net.Conn, roomName, httpPayload string, rooms *config.CherryRooms, preprocessor *html.Preprocessor) { var userData map[string]string userData = rawhttp.GetFieldsFromGet(httpPayload) var replyBuffer []byte if !rooms.IsValidUserRequest(roomName, userData["user"], userData["id"], newConn) { replyBuffer = rawhttp.MakeReplyBuffer(html.GetBadAssErrorData(), 404, true) } else { replyBuffer = rawhttp.MakeReplyBuffer(preprocessor.ExpandData(roomName, rooms.GetTopTemplate(roomName)), 200, true) } newConn.Write(replyBuffer) newConn.Close() }