Name
x_298439_mjml.util
Description
No description available
Script
var util = Class.create();
util.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
endpoint: gs.getProperty('x_298439_mjml.api.endpoint'),
apiKey: gs.getProperty('x_298439_mjml.api.key'),
username: (function(){
if(this.apiKey && this.apiKey.indexOf(':')>0){
return this.apiKey.split(':')[0];
}
return false;
})(),
password: (function(){
if(this.apiKey && this.apiKey.indexOf(':')>0){
return this.apiKey.split(':')[1];
}
return false;
})(),
demo: function(){
return JSON.stringify({"hoo":"raa"});
},
transpile: function() {
var inputObj = JSON.parse(this.getParameter('sysparm_obj'));
var html = this.getutil(inputObj.mjml, inputObj.sys_id);
var returnObj = {
from: "server",
input: inputObj,
html: html
};
return JSON.stringify(returnObj);
},
getutil: function(mjml, currentSysId) {
var current = new GlideRecord('x_298439_mjml_templates');
current.get(currentSysId);
var isutilAPIinUse = this.endpoint == 'https://api.mjml.io/v1/render';
if (isutilAPIinUse && this.apiKey == '') {
gs.error('x_298439_mjml.api.key is empty');
return;
}
var obj = {};
obj.mjml = mjml;
var request = new sn_ws.RESTMessageV2();
request.setHttpMethod('post');
if (this.username && this.password) {
request.setBasicAuth(username, password);
}
request.setEndpoint(this.endpoint);
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestBody(JSON.stringify(obj));
request.setStringParameterEscape();
var response = request.execute();
var evaluator = new GlideScopedEvaluator();
var output = evaluator.evaluateScript(current, "template_variables", null);
try {
var returnedHTML = JSON.parse(response.getBody()).html;
for (var prop in output) {
var replaceString = '{{mjml.' + prop + '}}';
var regex = new RegExp(replaceString, 'g');
returnedHTML = returnedHTML.replace(regex, output[prop]);
}
return returnedHTML;
} catch (error) {
var errorMessage = 'Error with response for util: ' + error;
gs.error(errorMessage);
return errorMessage
}
},
type: 'util'
});
Sys ID
0e2edee32fb2c110bd54d5f62799b6f7