UNPKG

backendless-console-sdk

Version:

Backendless Console SDK for Node.js and browser

215 lines (202 loc) 11.5 kB
"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); };