Prototyped client response methods, refactored queue routes

This commit is contained in:
Michael Schmatz 2014-02-07 14:24:42 -08:00
parent 4b0e384668
commit ecf578ad3c
2 changed files with 43 additions and 14 deletions

View file

@ -134,12 +134,12 @@ class SQSMessage extends MessageObject
getID: -> @originalMessage.Messages[0].MessageId getID: -> @originalMessage.Messages[0].MessageId
removeFromQueue: (callback) -> parentQueue.deleteMessage @getReceiptHandle(), callback removeFromQueue: (callback) -> @parentQueue.deleteMessage @getReceiptHandle(), callback
requeue: (callback) -> parentQueue.changeMessageVisibilityTimeout 0, @getReceiptHandle(), callback requeue: (callback) -> @parentQueue.changeMessageVisibilityTimeout 0, @getReceiptHandle(), callback
changeMessageVisibilityTimeout: (secondsFromFunctionCall, callback) -> changeMessageVisibilityTimeout: (secondsFromFunctionCall, callback) ->
parentQueue.changeMessageVisibilityTimeout secondsFromFunctionCall,@getReceiptHandle(), callback @parentQueue.changeMessageVisibilityTimeout secondsFromFunctionCall,@getReceiptHandle(), callback
getReceiptHandle: -> @originalMessage.Messages[0].ReceiptHandle getReceiptHandle: -> @originalMessage.Messages[0].ReceiptHandle

View file

@ -44,22 +44,25 @@ parseTaskQueueMessage = (req, res, message) ->
try try
return messageBody = JSON.parse message.getBody() return messageBody = JSON.parse message.getBody()
catch e catch e
sendResponseObject req, res, {"error":"There was an error parsing the task."} sendResponseObject req, res, {"error":"There was an error parsing the task.Error: #{e}" }
null null
constructTaskObject = (taskMessageBody, callback) -> constructTaskObject = (taskMessageBody, callback) ->
getSessionInformation taskMessageBody.sessionID, (err, sessionInformation) -> async.map taskMessageBody.sessions, getSessionInformation, (err, sessions) ->
return callback err, data if err? return callback err, data if err?
taskObject = taskObject =
"messageGenerated": Date.now() "messageGenerated": Date.now()
"sessionID": sessionInformation.sessionID "players": []
"sessionChangedTime": sessionInformation.changed
"taskGeneratingPlayerID": sessionInformation.creator
"code": sessionInformation.code
"players": sessionInformation.players
for session in sessions
sessionInformation =
"sessionID": session.sessionID
"sessionChangedTime": session.changed
"team": session.team? "No team"
"code": session.code
taskObject.players.push sessionInformation
callback err, taskObject callback err, taskObject
@ -70,10 +73,11 @@ getSessionInformation = (sessionIDString, callback) ->
session = session.toJSON() session = session.toJSON()
sessionInformation = sessionInformation =
"sessionID": session._id "sessionID": session._id
"players": _.cloneDeep session.players
"code": _.cloneDeep session.code "code": _.cloneDeep session.code
"changed": session.changed "changed": session.changed
"creator": session.creator "creator": session.creator
"team": session.team
callback err, sessionInformation callback err, sessionInformation
@ -84,17 +88,41 @@ sendResponseObject = (req,res,object) ->
res.end() res.end()
module.exports.processTaskResult = (req, res) -> module.exports.processTaskResult = (req, res) ->
#clientResponseObject = JSON.parse req.body clientResponseObject = parseClientResponseObject req, res
#check for timeout
res.end("You posted an object to score!") if clientResponseObject?
return handleTimedOutTask clientResponseObject if hasTaskTimedOut clientResponseObject
logTaskComputation clientResponseObject
updateScores clientResponseObject
hasTaskTimedOut = (taskBody) ->
return false
handleTimedOutTask = (taskBody) ->
#probably mark the task log as incomplete
return false
parseClientResponseObject = (req, res) ->
try
return JSON.parse req.body
catch e
errors.badInput res, "Unprocessable task response object."
return null
logTaskComputation = (taskObject) ->
return
updateScores = (taskObject) ->
return
###Sample Messages ###Sample Messages
sampleQueueMessage = sampleQueueMessage =
sessions: [ sessions: [
"52dfeb17c8b5f435c7000025" "52dfeb17c8b5f435c7000025"
"52dfe03ac8b5f435c7000009"
] ]
sampleUndoneTaskObject = sampleUndoneTaskObject =
@ -138,6 +166,7 @@ sampleTaskLogObject=
"_id":ObjectId("507f191e810c19729de860ea") #datestamp is built into objectId "_id":ObjectId("507f191e810c19729de860ea") #datestamp is built into objectId
"calculatedBy":ObjectId("51eb2714fa058cb20d0006ef") "calculatedBy":ObjectId("51eb2714fa058cb20d0006ef")
"calculationTime":3201 "calculationTime":3201
timedOut: false
"sessions":[ "sessions":[
{ {
"ID":ObjectId("52dfeb17c8b5f435c7000025") "ID":ObjectId("52dfeb17c8b5f435c7000025")