overleaf/services/web/app/coffee/Features/SystemMessages/SystemMessageManager.coffee

30 lines
854 B
CoffeeScript
Raw Normal View History

2014-07-24 12:24:08 +00:00
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
2017-03-01 15:46:43 +00:00
CACHE_TIMEOUT = 20 * 1000 # 20 seconds
2014-07-24 12:24:08 +00:00
setInterval () ->
SystemMessageManager.clearCache()
2017-03-01 15:46:43 +00:00
, CACHE_TIMEOUT