overleaf/services/web/app/coffee/Features/SystemMessages/SystemMessageManager.coffee
2017-03-01 15:46:43 +00:00

29 lines
854 B
CoffeeScript

SystemMessage = require("../../models/SystemMessage").SystemMessage
module.exports = SystemMessageManager =
getMessages: (callback = (error, messages) ->) ->
if @_cachedMessages?
return callback null, @_cachedMessages
else
@getMessagesFromDB (error, messages) =>
return callback(error) if error?
@_cachedMessages = messages
return callback null, messages
getMessagesFromDB: (callback = (error, messages) ->) ->
SystemMessage.find {}, callback
clearMessages: (callback = (error) ->) ->
SystemMessage.remove {}, callback
createMessage: (content, callback = (error) ->) ->
message = new SystemMessage { content: content }
message.save callback
clearCache: () ->
delete @_cachedMessages
CACHE_TIMEOUT = 20 * 1000 # 20 seconds
setInterval () ->
SystemMessageManager.clearCache()
, CACHE_TIMEOUT