From 2c6e667bb7411d6fdb496feaad52f21dce4ef20c Mon Sep 17 00:00:00 2001
From: Michael Schmatz <schmatz@umich.edu>
Date: Sat, 15 Mar 2014 09:20:13 -0700
Subject: [PATCH] Added API for queue messages count

---
 app/views/play/spectate_view.coffee |  4 ----
 server/commons/queue.coffee         |  3 ++-
 server/queues/scoring.coffee        | 11 +++++++++++
 server/routes/queue.coffee          |  5 +++++
 4 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/app/views/play/spectate_view.coffee b/app/views/play/spectate_view.coffee
index 5d855be0a..66093c013 100644
--- a/app/views/play/spectate_view.coffee
+++ b/app/views/play/spectate_view.coffee
@@ -453,10 +453,6 @@ module.exports = class SpectateLevelView extends View
         else
           cb(null, $.parseJSON(jqxhr.responseText))
         
-      
-    
-    
-
   destroy: ()->
     @supermodel?.off 'error', @onLevelLoadError
     @levelLoader?.off 'loaded-all', @onLevelLoaderLoaded
diff --git a/server/commons/queue.coffee b/server/commons/queue.coffee
index 1e86f99cd..10710e340 100644
--- a/server/commons/queue.coffee
+++ b/server/commons/queue.coffee
@@ -185,7 +185,8 @@ class MongoQueue extends events.EventEmitter
   subscribe: (eventName, callback) -> @on eventName, callback
   unsubscribe: (eventName, callback) -> @removeListener eventName, callback
 
-
+  totalMessagesInQueue: (callback) -> @Message.count {}, callback
+    
   receiveMessage: (callback) ->
     conditions =
       queue: @queueName
diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee
index cc4abe0a9..ee09a914f 100644
--- a/server/queues/scoring.coffee
+++ b/server/queues/scoring.coffee
@@ -24,6 +24,17 @@ connectToScoringQueue = ->
       if error? then throw new Error  "There was an error registering the scoring queue: #{error}"
       scoringTaskQueue = data
       log.info "Connected to scoring task queue!"
+      
+module.exports.messagesInQueueCount = (req, res) ->
+  scoringTaskQueue.totalMessagesInQueue (err, count) ->
+    if err? then return errors.serverError res, "There was an issue finding the Mongoose count:#{err}"
+    response = 
+      point:
+        number: count
+        timestamp: Date.now()
+    res.send(response)
+    res.end()
+
 
 module.exports.addPairwiseTaskToQueueFromRequest = (req, res) ->
   taskPair = req.body.sessions
diff --git a/server/routes/queue.coffee b/server/routes/queue.coffee
index 85ee0f8e3..10af6875f 100644
--- a/server/routes/queue.coffee
+++ b/server/routes/queue.coffee
@@ -9,6 +9,11 @@ module.exports.setup = (app) ->
   #app.post '/queue/scoring/pairwise', (req, res) ->
   #  handler = loadQueueHandler 'scoring'
   #  handler.addPairwiseTaskToQueue req, res
+  
+  app.get '/queue/messagesInQueueCount', (req, res) ->
+    handler = loadQueueHandler 'scoring'
+    handler.messagesInQueueCount req, res
+    
     
   app.all '/queue/*', (req, res) ->
     setResponseHeaderToJSONContentType res