backendless-console-sdk
Version:
Backendless Console SDK for Node.js and browser
215 lines (202 loc) • 11.5 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _urls = _interopRequireDefault(require("./urls"));
var _baseService = _interopRequireDefault(require("./base/base-service"));
function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2["default"])(t); if (r) { var s = (0, _getPrototypeOf2["default"])(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2["default"])(this, e); }; }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable max-len */
var Email = /*#__PURE__*/function (_BaseService) {
(0, _inherits2["default"])(Email, _BaseService);
var _super = _createSuper(Email);
function Email(req) {
var _this;
(0, _classCallCheck2["default"])(this, Email);
_this = _super.call(this, req);
_this.serviceName = 'email';
return _this;
}
/**
* @aiToolName Load Email Templates
* @category Email
* @description Load email templates for an application
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @sampleResult [{"eventId":6,"name":"Registration Confirmation","triggersEmail":true}]
*/
(0, _createClass2["default"])(Email, [{
key: "loadEmailTemplates",
value: function loadEmailTemplates(appId) {
return this.loadTemplates(appId);
}
}, {
key: "loadTemplates",
value: function loadTemplates(appId) {
return this.req.get("".concat(_urls["default"].appConsole(appId), "/email"));
}
}, {
key: "saveEmailTemplate",
value: function saveEmailTemplate(appId, template) {
return this.saveTemplate(appId, template);
}
}, {
key: "saveTemplate",
value: function saveTemplate(appId, template) {
return this.req.put("".concat(_urls["default"].appConsole(appId), "/email/events"), template);
}
}, {
key: "sendTestEmail",
value: function sendTestEmail(appId, emailData) {
return this.req.post("".concat(_urls["default"].appConsole(appId), "/email/events/test"), emailData);
}
}, {
key: "updateEmailParams",
value: function updateEmailParams(appId, emailSettings) {
return this.req.put(_urls["default"].mailSettings(appId), emailSettings);
}
}, {
key: "resetEmailParams",
value: function resetEmailParams(appId) {
return this.req["delete"](_urls["default"].mailSettings(appId));
}
}, {
key: "getEmailParams",
value: function getEmailParams(appId) {
return this.req.get(_urls["default"].mailSettings(appId));
}
}, {
key: "testSMTPConnection",
value: function testSMTPConnection(appId, emailSettings) {
return this.req.put("".concat(_urls["default"].mailSettings(appId), "/test"), emailSettings);
}
/**
* @aiToolName Load Custom Templates
* @category Email
* @description Load custom email templates for an application
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @sampleResult []
*/
}, {
key: "loadCustomTemplates",
value: function loadCustomTemplates(appId) {
return this.req.get(_urls["default"].emailTemplates(appId));
}
/**
* @typedef {Object} createCustomTemplate__payload
* @paramDef {"type":"string","label":"Template Name","name":"name","required":true,"description":"The name of the custom email template"}
* @paramDef {"type":"string","label":"Subject","name":"subject","required":true,"description":"The email subject line"}
* @paramDef {"type":"string","label":"HTML Body","name":"body","required":true,"description":"The HTML content of the email template. Use {{variableName}} for template variables that can be replaced when sending emails"}
*/
/**
* @aiToolName Create Custom Template
* @category Email
* @description Create a new custom email template
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"createCustomTemplate__payload","name":"payload","label":"Template Data","description":"Object containing template name, subject, and HTML body","required":true}
* @sampleResult ""
*/
}, {
key: "createCustomTemplate",
value: function createCustomTemplate(appId, payload) {
return this.req.post(_urls["default"].emailTemplates(appId), payload);
}
/**
* @typedef {Object} updateCustomTemplate__payload
* @paramDef {"type":"string","label":"Template Name","name":"name","required":true,"description":"The name of the email template"}
* @paramDef {"type":"string","label":"Subject","name":"subject","required":true,"description":"The email subject line"}
* @paramDef {"type":"string","label":"Body","name":"body","required":true,"description":"The HTML content of the email template. Use {{variableName}} for template variables that can be replaced when sending emails"}
* @paramDef {"type":"array","label":"Attachments","name":"attachments","required":false,"description":"Array of email attachments (optional)"}
*/
/**
* @aiToolName Update Custom Template
* @category Email
* @description Update an existing custom email template
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"updateCustomTemplate__payload","name":"payload","label":"Template Data","description":"Object containing template name, subject, and HTML body","required":true}
* @paramDef {"type":"string","name":"templateName","label":"Template Name","description":"The name of the template to update","required":true}
* @sampleResult ""
*/
}, {
key: "updateCustomTemplate",
value: function updateCustomTemplate(appId, payload, templateName) {
return this.req.put(_urls["default"].emailTemplates(appId, templateName), payload);
}
/**
* @aiToolName Delete Custom Template
* @category Email
* @description Delete a custom email template
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"string","name":"templateName","label":"Template Name","description":"The name of the template to delete","required":true}
* @sampleResult ""
*/
}, {
key: "deleteCustomTemplate",
value: function deleteCustomTemplate(appId, templateName) {
return this.req["delete"](_urls["default"].emailTemplates(appId, templateName));
}
/**
* @typedef {Object} sendTestCustomEmail__templateValues
* @paramDef {"type":"string","label":"Template Variable","name":"[key]","required":false,"description":"Template variables to replace in HTML (e.g., for {{username}} use username: 'John')"}
*/
/**
* @typedef {Object} sendTestCustomEmail__payload
* @paramDef {"type":"string","label":"Template Name","name":"template-name","required":true,"description":"The name of the custom email template to use"}
* @paramDef {"type":"sendTestCustomEmail__templateValues","label":"Template Values","name":"template-values","required":false,"description":"Object containing template variables to replace in HTML. For {{key}} in HTML, provide key: 'value'"}
* @paramDef {"type":"array","label":"Attachments","name":"attachment","required":false,"description":"Array of file paths from Backendless Files service (e.g., ['folder/file.pdf', 'image.jpg'])"}
* @paramDef {"type":"string","label":"Recipient Email","name":"email","required":true,"description":"Email address to send the test email to"}
*/
/**
* @aiToolName Send Test Custom Email
* @category Email
* @description Send a test email using a custom template. Template variables in HTML like {{key}} will be replaced with values from template-values object.
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"sendTestCustomEmail__payload","name":"payload","label":"Email Data","description":"Object containing template name, variables, attachments, and recipient email","required":true}
* @sampleResult ""
*/
}, {
key: "sendTestCustomEmail",
value: function sendTestCustomEmail(appId, payload) {
return this.req.post("".concat(_urls["default"].emailTemplates(appId), "/test"), payload);
}
/**
* @typedef {Object} parseCustomTemplateKeys__payload
* @paramDef {"type":"string","label":"Template Name","name":"name","required":true,"description":"The name of the email template to parse"}
* @paramDef {"type":"string","label":"Subject","name":"subject","required":true,"description":"The email subject line"}
* @paramDef {"type":"string","label":"HTML Body","name":"body","required":true,"description":"The HTML content of the email template to extract variables from"}
* @paramDef {"type":"array","label":"Attachments","name":"attachments","required":false,"description":"Array of email attachments (optional)"}
*/
/**
* @aiToolName Parse Custom Template Keys
* @category Email
* @description Parse and validate custom template keys
* @paramDef {"type":"string","name":"appId","label":"Application ID","description":"The identifier of the application","required":true}
* @paramDef {"type":"parseCustomTemplateKeys__payload","name":"payload","label":"Template Data","description":"Object containing template name, subject, and HTML body to extract variables from","required":true}
* @sampleResult ["username","email","date"]
*/
}, {
key: "parseCustomTemplateKeys",
value: function parseCustomTemplateKeys(appId, payload) {
return this.req.post("".concat(_urls["default"].emailTemplates(appId), "/customkeys"), payload);
}
}, {
key: "installEmailTemplateFromMarketplace",
value: function installEmailTemplateFromMarketplace(appId, productId, data) {
return this.req.post(_urls["default"].installEmailTemplate(appId, productId), data);
}
}, {
key: "resetSystemEmailTemplate",
value: function resetSystemEmailTemplate(appId, eventId) {
return this.req["delete"]("".concat(_urls["default"].appConsole(appId), "/email/events/").concat(eventId));
}
}]);
return Email;
}(_baseService["default"]);
var _default = exports["default"] = function _default(req) {
return Email.create(req);
};