1
0
Fork 0
mirror of synced 2024-06-30 20:10:54 +12:00
budibase/packages/worker/src/utilities/templates.js

51 lines
1.8 KiB
JavaScript
Raw Normal View History

const CouchDB = require("../db")
const { getScopedConfig, StaticDatabases } = require("@budibase/auth").db
2021-05-05 23:11:31 +12:00
const {
Configs,
TemplateBindings,
LOGO_URL,
EmailTemplatePurpose,
} = require("../constants")
const { checkSlashesInUrl } = require("./index")
const env = require("../environment")
const LOCAL_URL = `http://localhost:${env.PORT}`
const BASE_COMPANY = "Budibase"
exports.getSettingsTemplateContext = async (purpose, code = null) => {
const db = new CouchDB(StaticDatabases.GLOBAL.name)
// TODO: use more granular settings in the future if required
2021-05-12 02:24:17 +12:00
let settings = (await getScopedConfig(db, { type: Configs.SETTINGS })) || {}
if (!settings || !settings.platformUrl) {
2021-04-24 05:54:12 +12:00
settings.platformUrl = LOCAL_URL
}
2021-04-24 05:54:12 +12:00
const URL = settings.platformUrl
const context = {
[TemplateBindings.LOGO_URL]:
checkSlashesInUrl(`${URL}/${settings.logoUrl}`) || LOGO_URL,
2021-04-24 05:54:12 +12:00
[TemplateBindings.PLATFORM_URL]: URL,
[TemplateBindings.COMPANY]: settings.company || BASE_COMPANY,
2021-04-27 01:16:05 +12:00
[TemplateBindings.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(),
}
// attach purpose specific context
switch (purpose) {
case EmailTemplatePurpose.PASSWORD_RECOVERY:
context[TemplateBindings.RESET_CODE] = code
context[TemplateBindings.RESET_URL] = checkSlashesInUrl(
`${URL}/reset?code=${code}`
)
break
case EmailTemplatePurpose.INVITATION:
context[TemplateBindings.INVITE_CODE] = code
2021-05-11 02:05:06 +12:00
context[TemplateBindings.INVITE_URL] = checkSlashesInUrl(
`${URL}/invite?code=${code}`
)
break
}
return context
2021-04-23 04:58:14 +12:00
}