1 | "use strict";
|
2 | var __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 | };
|
10 | Object.defineProperty(exports, "__esModule", { value: true });
|
11 | const AWS = require("aws-sdk");
|
12 | const tools_1 = require("./tools");
|
13 | AWS.config.update({ region: 'us-east-1' });
|
14 | const SES = new AWS.SES();
|
15 | const SNS = new AWS.SNS();
|
16 | function 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 | }
|
24 | class 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 | }
|
81 | exports.Notify = Notify;
|
82 |
|
\ | No newline at end of file |