slackManager.js 838 B

1234567891011121314151617181920212223242526272829303132333435363738
  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, reqT) {
  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. val.onUserInterract(reqT);
  25. return val;
  26. };
  27. SlackManager.prototype.removed = function(key, slack) {
  28. slack.close();
  29. };
  30. module.exports.SlackManager = instance;