UNPKG

3.37 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10Object.defineProperty(exports, "__esModule", { value: true });
11const AWS = require("aws-sdk");
12const tools_1 = require("./tools");
13AWS.config.update({ region: 'us-east-1' });
14const SES = new AWS.SES();
15const SNS = new AWS.SNS();
16function parseValues(content, values) {
17 const keys = Object.keys(values);
18 for (let i = 0; i < keys.length; i++) {
19 const reg = new RegExp('{{' + keys[i] + '}}', 'g');
20 content = content.toString().replace(reg, values[keys[i]]);
21 }
22 return content;
23}
24class Notify {
25 sendEmail(body) {
26 return __awaiter(this, void 0, void 0, function* () {
27 let params = {
28 Destination: {
29 CcAddresses: [],
30 ToAddresses: body.emailAddresses
31 },
32 Message: {
33 Body: {
34 Html: {
35 Charset: 'UTF-8',
36 Data: body.values ? parseValues(body.htmlContent, body.values) : body.htmlContent
37 },
38 Text: {
39 Charset: 'UTF-8',
40 Data: body.values ? parseValues(body.textContent, body.values) : body.textContent
41 }
42 },
43 Subject: {
44 Charset: 'UTF-8',
45 Data: body.values ? parseValues(body.subject, body.values) : body.subject
46 }
47 },
48 Source: body.from,
49 ReplyToAddresses: body.replyTo
50 };
51 try {
52 const data = yield SES.sendEmail(params).promise();
53 params['messageId'] = data;
54 return tools_1.response(true, null, params);
55 }
56 catch (error) {
57 console.log(60, error);
58 return tools_1.response(false, error.message);
59 }
60 });
61 }
62 sendSms(body) {
63 return __awaiter(this, void 0, void 0, function* () {
64 const params = {
65 Message: body.values ? parseValues(body.textContent, body.values) : body.textContent,
66 PhoneNumber: body.phoneNumber,
67 Subject: body.values ? parseValues(body.subject, body.values) : body.subject
68 };
69 try {
70 const data = yield SNS.publish(params).promise();
71 params['messageId'] = data;
72 return tools_1.response(true, null, params);
73 }
74 catch (error) {
75 console.log(77, error);
76 return tools_1.response(false, error.message);
77 }
78 });
79 }
80}
81exports.Notify = Notify;
82//# sourceMappingURL=tools.notify.js.map
\No newline at end of file