Created
May 28, 2020 04:44
-
-
Save shivasurya/85bb10bb501851d7ff231ed03bb50b77 to your computer and use it in GitHub Desktop.
AWS SES Email Template Create/Update Script Wrapper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// install those dependencies first | |
var minify = require("html-minifier").minify; | |
var fs = require("fs"); | |
var AWS = require("aws-sdk"); | |
// usage : node .\template-creater.js .\emailtemplate.html emailtemplate.json false emailtemplate-unique-name "Subject for the email" | |
// 1st Argument => Templated HTML File | |
// 2nd Argument => Name of the generated template json file | |
// 3rd Argument => Update or Create template ( boolean ) | |
// 4th Argument => Unique template name | |
// 5th Argument => Subject of the email | |
let isUpdate = process.argv[4]; | |
AWS.config.update({ | |
accessKeyId: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", | |
secretAccessKey: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", | |
region: "us-west-1" | |
}); | |
// read html file from commandline and minify them | |
var fileContents = fs.readFileSync(process.argv[2], "utf8"); | |
// var minifiedHtml = minify(fileContents, { | |
// collapseWhitespace: true, | |
// minifyCSS: true, | |
// minifyJS: true | |
// }); | |
// escape the html code double quotes and special characters | |
var myEscapedJSONString = fileContents | |
.replace(/\\n/g, "\\n") | |
.replace(/\\"/g, "'") | |
.replace(/\\&/g, "\\&") | |
.replace(/\\r/g, "\\r") | |
.replace(/\\t/g, "\\t") | |
.replace(/\\b/g, "\\b") | |
.replace(/\\f/g, "\\f") | |
var params = { | |
Template: { | |
TemplateName: process.argv[5], | |
HtmlPart: myEscapedJSONString, | |
SubjectPart: process.argv[6] | |
} | |
}; | |
// write to template generation json file | |
fs.writeFileSync(process.argv[3], JSON.stringify(params), "utf8"); | |
//upload to AWS service to render it as template | |
if (isUpdate) { | |
let templatePromise = new AWS.SES({ apiVersion: "2010-12-01" }) | |
.updateTemplate(params) | |
.promise(); | |
templatePromise.then(function(data){ | |
console.log(data) | |
}).catch(err => console.log(err)) | |
} else { | |
let templatePromise = new AWS.SES({ apiVersion: "2010-12-01" }) | |
.createTemplate(params) | |
.promise(); | |
templatePromise.then(function(data){ | |
console.log(data) | |
}).catch(err => console.log(err)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment