message.js 913 B

1234567891011121314151617181920212223242526272829303132333435
  1. const { pushWeChatMessage } = require('./wechat');
  2. const { pushEmailMessage } = require('./email');
  3. const { Message } = require('../models');
  4. async function processMessage(userPrefix, message) {
  5. if (message.email) {
  6. // If message has the attribute "email", override its type.
  7. message.type = '1';
  8. }
  9. if (message.content && message.type === '0') {
  10. message = await Message.create(message);
  11. }
  12. let result = {
  13. success: false,
  14. message: `unsupported message type ${message.type}`,
  15. };
  16. switch (message.type) {
  17. case '0': // WeChat message
  18. result = await pushWeChatMessage(userPrefix, message);
  19. break;
  20. case '1': // Email message
  21. result = await pushEmailMessage(userPrefix, message);
  22. break;
  23. case '2': // HTTP GET request
  24. // TODO: HTTP GET request
  25. break;
  26. default:
  27. break;
  28. }
  29. return result;
  30. }
  31. module.exports = {
  32. processMessage,
  33. };