|
|
@@ -4,8 +4,8 @@ rclient = RedisWrapper.client("clsi_state")
|
|
|
logger = require "logger-sharelatex"
|
|
|
crypto = require "crypto"
|
|
|
|
|
|
-buildKey = (project_id, user_id)->
|
|
|
- return "clsistate:#{project_id}-#{user_id}" # FIXME: should we cluster these on project??
|
|
|
+buildKey = (project_id)->
|
|
|
+ return "clsistate:#{project_id}" # FIXME: should we cluster these on project??
|
|
|
|
|
|
buildState = (project) ->
|
|
|
JSON.stringify project
|
|
|
@@ -16,9 +16,9 @@ OneHour = 3600 * 1000
|
|
|
|
|
|
module.exports = ClsiStateManager =
|
|
|
|
|
|
- checkState: (project_id, user_id, project, callback = (err, ok) ->) ->
|
|
|
+ checkState: (project_id, project, callback = (err, ok) ->) ->
|
|
|
newState = buildState(project)
|
|
|
- @getState project_id, user_id, (err, oldState) ->
|
|
|
+ @getState project_id, (err, oldState) ->
|
|
|
return callback(err) if err?
|
|
|
if newState is oldState
|
|
|
hash = crypto.createHash('sha1').update(newState, 'utf8').digest('hex')
|
|
|
@@ -26,16 +26,16 @@ module.exports = ClsiStateManager =
|
|
|
else
|
|
|
callback(null,false)
|
|
|
|
|
|
- getState: (project_id, user_id, callback = (err, state)->)->
|
|
|
- rclient.get buildKey(project_id, user_id), (err, state)->
|
|
|
+ getState: (project_id, callback = (err, state)->)->
|
|
|
+ rclient.get buildKey(project_id), (err, state)->
|
|
|
return callback(err) if err?
|
|
|
- logger.log project_id: project_id, user_id: user_id, state: state, "got project state from redis"
|
|
|
+ logger.log project_id: project_id, state: state, "got project state from redis"
|
|
|
return callback(null, state)
|
|
|
|
|
|
- setState: (project_id, user_id, project, callback = (err)->)->
|
|
|
+ setState: (project_id, project, callback = (err)->)->
|
|
|
projectState = buildState project
|
|
|
- logger.log project_id: project_id, user_id: user_id, projectState: projectState, "setting project state in redis"
|
|
|
- rclient.set buildKey(project_id, user_id), projectState, "PX", OneHour, (err) ->
|
|
|
+ logger.log project_id: project_id, projectState: projectState, "setting project state in redis"
|
|
|
+ rclient.set buildKey(project_id), projectState, "PX", OneHour, (err) ->
|
|
|
return callback(err) if err?
|
|
|
hash = crypto.createHash('sha1').update(projectState, 'utf8').digest('hex')
|
|
|
callback(null,hash)
|