Commit 90bf37d451786d56de0a02547736417a1dbed68e
1 parent
4063417f46
Exists in
master
transport
Showing 4 changed files with 52 additions and 6 deletions Side-by-side Diff
lib/smstools-handler/received.js
... | ... | @@ -3,6 +3,9 @@ const logger = require('komodo-sdk/logger'); |
3 | 3 | |
4 | 4 | const config = require('komodo-sdk/config'); |
5 | 5 | const messagingClient = require('komodo-center-messaging-client-lib'); |
6 | +const transport = require('../transport'); | |
7 | + | |
8 | +messagingClient.setTransport(transport); | |
6 | 9 | |
7 | 10 | const mailparser = require('../mailparser-wrapper'); |
8 | 11 |
lib/transport.js
... | ... | @@ -0,0 +1,35 @@ |
1 | +const fs = require('fs'); | |
2 | +const config = require('komodo-sdk/config'); | |
3 | +const logger = require('komodo-sdk/logger'); | |
4 | +const uniqid = require('uniqid'); | |
5 | + | |
6 | +async function send(partner, msg) { | |
7 | + if (typeof partner !== 'string' || typeof msg !== 'string') return; | |
8 | + if (!partner.trim() || !msg.trim()) return; | |
9 | + | |
10 | + const destination = partner.trim().replace(/^0/, '').replace(/^\+/); | |
11 | + const msgFileContent = ` | |
12 | +To: ${destination} | |
13 | + | |
14 | +${msg.trim()} | |
15 | + `.trim(); | |
16 | + | |
17 | + const dir = config.outbox_dir || '/var/spool/sms/outgoing'; | |
18 | + const filename = `${dir}/komodo.${uniqid}`; | |
19 | + | |
20 | + fs.exists(dir, (isExists) => { | |
21 | + if (!isExists) { | |
22 | + logger.warn('Outbox dir is not exists', { dir }); | |
23 | + return; | |
24 | + } | |
25 | + | |
26 | + logger.info('Writing outbox', { filename }); | |
27 | + try { | |
28 | + fs.promises.writeFile(filename, msgFileContent, { mode: 0o660 }); | |
29 | + } catch (e) { | |
30 | + logger.warn('Exception on writing outbox', { filename, err: e.toString() }); | |
31 | + } | |
32 | + }); | |
33 | +} | |
34 | + | |
35 | +exports.send = send; |
package-lock.json
... | ... | @@ -2955,6 +2955,16 @@ |
2955 | 2955 | "winston": "^3.2.1", |
2956 | 2956 | "winston-circular-buffer": "^1.0.0", |
2957 | 2957 | "winston-daily-rotate-file": "^3.10.0" |
2958 | + }, | |
2959 | + "dependencies": { | |
2960 | + "uniqid": { | |
2961 | + "version": "4.1.1", | |
2962 | + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", | |
2963 | + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", | |
2964 | + "requires": { | |
2965 | + "macaddress": "^0.2.8" | |
2966 | + } | |
2967 | + } | |
2958 | 2968 | } |
2959 | 2969 | }, |
2960 | 2970 | "kuler": { |
... | ... | @@ -5007,12 +5017,9 @@ |
5007 | 5017 | } |
5008 | 5018 | }, |
5009 | 5019 | "uniqid": { |
5010 | - "version": "4.1.1", | |
5011 | - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", | |
5012 | - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", | |
5013 | - "requires": { | |
5014 | - "macaddress": "^0.2.8" | |
5015 | - } | |
5020 | + "version": "5.2.0", | |
5021 | + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.2.0.tgz", | |
5022 | + "integrity": "sha512-LH8zsvwJ/GL6YtNfSOmMCrI9piraAUjBfw2MCvleNE6a4pVKJwXjG2+HWhkVeFcSg+nmaPKbMrMOoxwQluZ1Mg==" | |
5016 | 5023 | }, |
5017 | 5024 | "unpipe": { |
5018 | 5025 | "version": "1.0.0", |