slackManager.js 798 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const cache = require('memory-cache')
  2. ,Slack = require('./slack.js').Slack;
  3. function SlackManager() {
  4. }
  5. var instance = new SlackManager();
  6. SlackManager.prototype.getScope = function() {
  7. return [
  8. "client"
  9. ];
  10. }
  11. SlackManager.prototype.lazyGet = function(sess) {
  12. var key = "SLACK_" +sess.sessId
  13. ,val = cache.get(key);
  14. if (val) {
  15. cache.put(key, val, 1000 * 60 * 60 * 24, function(key, val) {
  16. instance.removed(key, val);
  17. });
  18. } else {
  19. val = new Slack(sess);
  20. cache.put(key, val, 1000 * 60 * 60 * 24, function(key, val) {
  21. instance.removed(key, val);
  22. });
  23. }
  24. return val;
  25. }
  26. SlackManager.prototype.removed = function(key, slack) {
  27. slack.close();
  28. }
  29. module.exports.SlackManager = instance;