| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- const { getUserDefaultMethod } = require('./token');
- const { pushWeChatMessage } = require('./wechat');
- const { pushWeChatCorpMessage } = require('./wechat-corp');
- const { pushEmailMessage } = require('./email');
- const { Message } = require('../models');
- async function processMessage(userPrefix, message) {
- if (message.email) {
- // If message has the attribute "email", override its type.
- message.type = 'email';
- }
- if (!message.type) {
- message.type = getUserDefaultMethod(userPrefix);
- }
- if (message.content && message.type !== 'email') {
- // If message is not email type, we should save it because we have to serve the page.
- message = await Message.create(message, { raw: true });
- }
- let result;
- switch (message.type) {
- case 'test': // WeChat message
- result = await pushWeChatMessage(userPrefix, message);
- break;
- case 'email': // Email message
- result = await pushEmailMessage(userPrefix, message);
- break;
- case 'corp': // WeChar corp message
- result = await pushWeChatCorpMessage(userPrefix, message);
- break;
- default:
- result = {
- success: false,
- message: `unsupported message type ${message.type}`,
- };
- break;
- }
- return result;
- }
- module.exports = {
- processMessage,
- };
|