From eb4a430a7ca03af2cd0f266fdb48609062780b65 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 17 May 2021 15:30:24 +0100 Subject: [PATCH] Updating templating bindings enumerations. --- packages/worker/src/constants/index.js | 55 +++++++++++++++------- packages/worker/src/utilities/templates.js | 24 +++++----- 2 files changed, 50 insertions(+), 29 deletions(-) diff --git a/packages/worker/src/constants/index.js b/packages/worker/src/constants/index.js index d133631c4f..b40446cc89 100644 --- a/packages/worker/src/constants/index.js +++ b/packages/worker/src/constants/index.js @@ -30,45 +30,65 @@ const EmailTemplatePurpose = { CUSTOM: "custom", } +const InternalTemplateBindings = { + PLATFORM_URL: "platformUrl", + COMPANY: "company", + LOGO_URL: "logoUrl", + EMAIL: "email", + USER: "user", + REQUEST: "request", + DOCS_URL: "docsUrl", + LOGIN_URL: "loginUrl", + CURRENT_YEAR: "currentYear", + CURRENT_DATE: "currentDate", + BODY: "body", + STYLES: "styles", + RESET_URL: "resetUrl", + RESET_CODE: "resetCode", + INVITE_URL: "inviteUrl", + INVITE_CODE: "inviteUrl", + CONTENTS: "contents", +} + const TemplateBindings = { PLATFORM_URL: { - name: "platformUrl", + name: InternalTemplateBindings.PLATFORM_URL, description: "The URL used to access the budibase platform", }, COMPANY: { - name: "company", + name: InternalTemplateBindings.COMPANY, description: "The name of your organization", }, LOGO_URL: { - name: "logoUrl", + name: InternalTemplateBindings.LOGO_URL, description: "The URL of your organizations logo.", }, EMAIL: { - name: "email", + name: InternalTemplateBindings.EMAIL, description: "The recipients email address.", }, USER: { - name: "user", + name: InternalTemplateBindings.USER, description: "The recipients user object.", }, REQUEST: { - name: "request", + name: InternalTemplateBindings.REQUEST, description: "Additional request metadata.", }, DOCS_URL: { - name: "docsUrl", + name: InternalTemplateBindings.DOCS_URL, description: "Organization documentation URL.", }, LOGIN_URL: { - name: "loginUrl", + name: InternalTemplateBindings.LOGIN_URL, description: "The URL used to log into the organization budibase instance.", }, CURRENT_YEAR: { - name: "currentYear", + name: InternalTemplateBindings.CURRENT_YEAR, description: "The current year.", }, CURRENT_DATE: { - name: "currentDate", + name: InternalTemplateBindings.CURRENT_DATE, description: "The current date.", }, } @@ -80,11 +100,11 @@ const TemplateMetadata = { purpose: EmailTemplatePurpose.BASE, bindings: [ { - name: "body", + name: InternalTemplateBindings.BODY, description: "The main body of another email template.", }, { - name: "styles", + name: InternalTemplateBindings.STYLES, description: "The contents of the Styling email template.", }, ], @@ -94,12 +114,12 @@ const TemplateMetadata = { purpose: EmailTemplatePurpose.PASSWORD_RECOVERY, bindings: [ { - name: "resetUrl", + name: InternalTemplateBindings.RESET_URL, description: "The URL the recipient must click to reset their password.", }, { - name: "resetCode", + name: InternalTemplateBindings.RESET_CODE, description: "The temporary password reset code used in the recipients password reset URL.", }, @@ -110,12 +130,12 @@ const TemplateMetadata = { purpose: EmailTemplatePurpose.INVITATION, bindings: [ { - name: "inviteUrl", + name: InternalTemplateBindings.INVITE_URL, description: "The URL the recipient must click to accept the invitation and activate their account.", }, { - name: "inviteCode", + name: InternalTemplateBindings.INVITE_CODE, description: "The temporary invite code used in the recipients invitation URL.", }, @@ -126,7 +146,7 @@ const TemplateMetadata = { purpose: EmailTemplatePurpose.CUSTOM, bindings: [ { - name: "contents", + name: InternalTemplateBindings.CONTENTS, description: "Custom content body.", }, ], @@ -142,4 +162,5 @@ exports.TemplateTypes = TemplateTypes exports.EmailTemplatePurpose = EmailTemplatePurpose exports.TemplateMetadata = TemplateMetadata exports.TemplateBindings = TemplateBindings +exports.InternalTemplateBindings = InternalTemplateBindings exports.GLOBAL_OWNER = "global" diff --git a/packages/worker/src/utilities/templates.js b/packages/worker/src/utilities/templates.js index 00ef9e6130..6b860e02bd 100644 --- a/packages/worker/src/utilities/templates.js +++ b/packages/worker/src/utilities/templates.js @@ -2,7 +2,7 @@ const CouchDB = require("../db") const { getScopedConfig, StaticDatabases } = require("@budibase/auth").db const { Configs, - TemplateBindings, + InternalTemplateBindings, LOGO_URL, EmailTemplatePurpose, } = require("../constants") @@ -21,27 +21,27 @@ exports.getSettingsTemplateContext = async (purpose, code = null) => { } const URL = settings.platformUrl const context = { - [TemplateBindings.LOGO_URL]: + [InternalTemplateBindings.LOGO_URL]: checkSlashesInUrl(`${URL}/${settings.logoUrl}`) || LOGO_URL, - [TemplateBindings.PLATFORM_URL]: URL, - [TemplateBindings.COMPANY]: settings.company || BASE_COMPANY, - [TemplateBindings.DOCS_URL]: + [InternalTemplateBindings.PLATFORM_URL]: URL, + [InternalTemplateBindings.COMPANY]: settings.company || BASE_COMPANY, + [InternalTemplateBindings.DOCS_URL]: settings.docsUrl || "https://docs.budibase.com/", - [TemplateBindings.LOGIN_URL]: checkSlashesInUrl(`${URL}/login`), - [TemplateBindings.CURRENT_DATE]: new Date().toISOString(), - [TemplateBindings.CURRENT_YEAR]: new Date().getFullYear(), + [InternalTemplateBindings.LOGIN_URL]: checkSlashesInUrl(`${URL}/login`), + [InternalTemplateBindings.CURRENT_DATE]: new Date().toISOString(), + [InternalTemplateBindings.CURRENT_YEAR]: new Date().getFullYear(), } // attach purpose specific context switch (purpose) { case EmailTemplatePurpose.PASSWORD_RECOVERY: - context[TemplateBindings.RESET_CODE] = code - context[TemplateBindings.RESET_URL] = checkSlashesInUrl( + context[InternalTemplateBindings.RESET_CODE] = code + context[InternalTemplateBindings.RESET_URL] = checkSlashesInUrl( `${URL}/reset?code=${code}` ) break case EmailTemplatePurpose.INVITATION: - context[TemplateBindings.INVITE_CODE] = code - context[TemplateBindings.INVITE_URL] = checkSlashesInUrl( + context[InternalTemplateBindings.INVITE_CODE] = code + context[InternalTemplateBindings.INVITE_URL] = checkSlashesInUrl( `${URL}/invite?code=${code}` ) break