ee-ts-util
Version:
typescript utilities and functions
52 lines • 2.23 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fs = require("fs");
const mime = require("mime-types");
exports.buildSendTransactionalEmailAdapter = (config) => {
const createsend = require("createsend-node");
const client = new createsend(config);
return (emailDetails) => __awaiter(this, void 0, void 0, function* () {
return yield new Promise((resolve, reject) => {
const smartEmailDetails = buildSmartEmailDetails(emailDetails);
client.transactional.sendSmartEmail(smartEmailDetails, (err, res) => {
if (err) {
return reject(err);
}
resolve(res);
});
});
});
};
const buildAttachment = (attachmentPath) => {
if (!fs.existsSync(attachmentPath)) {
throw new Error(`Failed to load attachment file. File not found: ${attachmentPath}`);
}
const data = fs.readFileSync(attachmentPath);
const content = new Buffer(data).toString("base64");
const filePath = path.parse(attachmentPath);
return {
Content: content,
Name: filePath.base,
Type: mime.lookup(filePath.ext)
};
};
const buildSmartEmailDetails = (emailDetails) => {
const attachments = emailDetails.attachments.map(buildAttachment);
return {
smartEmailID: emailDetails.smartEmailID,
To: emailDetails.emailTo,
CC: emailDetails.emailCC,
Data: emailDetails.emailPlaceholderValues,
Attachments: attachments
};
};
//# sourceMappingURL=transactionalEmailAdapter.js.map