SystemMessageManager.coffee 856 B

1234567891011121314151617181920212223242526272829
  1. SystemMessage = require("../../models/SystemMessage").SystemMessage
  2. module.exports = SystemMessageManager =
  3. getMessages: (callback = (error, messages) ->) ->
  4. if @_cachedMessages?
  5. return callback null, @_cachedMessages
  6. else
  7. @getMessagesFromDB (error, messages) =>
  8. return callback(error) if error?
  9. @_cachedMessages = messages
  10. return callback null, messages
  11. getMessagesFromDB: (callback = (error, messages) ->) ->
  12. SystemMessage.find {}, callback
  13. clearMessages: (callback = (error) ->) ->
  14. SystemMessage.remove {}, callback
  15. createMessage: (content, callback = (error) ->) ->
  16. message = new SystemMessage { content: content }
  17. message.save callback
  18. clearCache: () ->
  19. delete @_cachedMessages
  20. CACHE_TIMEOUT = 5 * 60 * 1000 # 5 minutes
  21. setInterval () ->
  22. SystemMessageManager.clearCache()
  23. , CACHE_TIMEOUT