CooldownManager.coffee 727 B

1234567891011121314151617181920212223
  1. RedisWrapper = require('../../infrastructure/RedisWrapper')
  2. rclient = RedisWrapper.client('cooldown')
  3. logger = require('logger-sharelatex')
  4. COOLDOWN_IN_SECONDS = 60 * 10
  5. module.exports = CooldownManager =
  6. _buildKey: (projectId) ->
  7. "Cooldown:{#{projectId}}"
  8. putProjectOnCooldown: (projectId, callback=(err)->) ->
  9. logger.log {projectId}, "[Cooldown] putting project on cooldown for #{COOLDOWN_IN_SECONDS} seconds"
  10. rclient.set(CooldownManager._buildKey(projectId), '1', 'EX', COOLDOWN_IN_SECONDS, callback)
  11. isProjectOnCooldown: (projectId, callback=(err, isOnCooldown)->) ->
  12. rclient.get CooldownManager._buildKey(projectId), (err, result) ->
  13. if err?
  14. return callback(err)
  15. callback(null, result == "1")