| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /* eslint-disable
- n/handle-callback-err,
- max-len,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let CooldownManager
- const RedisWrapper = require('../../infrastructure/RedisWrapper')
- const rclient = RedisWrapper.client('cooldown')
- const logger = require('@overleaf/logger')
- const { promisifyAll } = require('../../util/promises')
- const COOLDOWN_IN_SECONDS = 60 * 10
- module.exports = CooldownManager = {
- _buildKey(projectId) {
- return `Cooldown:{${projectId}}`
- },
- putProjectOnCooldown(projectId, callback) {
- if (callback == null) {
- callback = function () {}
- }
- logger.debug(
- { projectId },
- `[Cooldown] putting project on cooldown for ${COOLDOWN_IN_SECONDS} seconds`
- )
- return rclient.set(
- CooldownManager._buildKey(projectId),
- '1',
- 'EX',
- COOLDOWN_IN_SECONDS,
- callback
- )
- },
- isProjectOnCooldown(projectId, callback) {
- if (callback == null) {
- callback = function () {}
- }
- return rclient.get(
- CooldownManager._buildKey(projectId),
- function (err, result) {
- if (err != null) {
- return callback(err)
- }
- return callback(null, result === '1')
- }
- )
- },
- }
- module.exports.promises = promisifyAll(module.exports, {
- without: ['_buildKey'],
- })
|