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

Offical Documentation

Official Docs: