received.js
1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const winston = require('winston');
const config = require('komodo-sdk/config');
const messagingClient = require('komodo-center-messaging-client-lib');
const mailparser = require('../mailparser-wrapper');
const logger = winston.createLogger({
transports: [
new winston.transports.Console(),
],
});
module.exports = async (msg) => {
const parsedMsg = await mailparser(msg);
if (!parsedMsg || !parsedMsg.headers) {
logger.warn('Invalid message');
return;
}
const from = parsedMsg.headers.get('from').text;
const imsi = parsedMsg.headers.get('imsi');
const { text } = parsedMsg;
logger.info('Message parsed', {
from, imsi, text,
});
if (!from || !imsi || !text) {
return;
}
const doNotForwardToCore = (from.search(/(\+)*62/) !== 0) || (from.length <= 8);
messagingClient.onIncomingMessage({
me: imsi,
partner: `${from}${config.number_suffix || ''}`,
partner_raw: from,
msg: text,
origin_label: imsi || 'UNKNOWN',
origin_transport: 'SMS',
origin_partner: from,
do_not_forward_to_core: doNotForwardToCore,
});
};