2021-04-24 05:07:39 +12:00
|
|
|
const CouchDB = require("../db")
|
2021-05-06 21:51:21 +12:00
|
|
|
const { getScopedConfig, StaticDatabases } = require("@budibase/auth").db
|
2021-05-05 23:11:31 +12:00
|
|
|
const {
|
|
|
|
Configs,
|
|
|
|
TemplateBindings,
|
|
|
|
LOGO_URL,
|
|
|
|
EmailTemplatePurpose,
|
|
|
|
} = require("../constants")
|
2021-04-23 04:57:38 +12:00
|
|
|
const { checkSlashesInUrl } = require("./index")
|
|
|
|
const env = require("../environment")
|
|
|
|
|
|
|
|
const LOCAL_URL = `http://localhost:${env.PORT}`
|
|
|
|
const BASE_COMPANY = "Budibase"
|
|
|
|
|
2021-05-05 23:11:06 +12:00
|
|
|
exports.getSettingsTemplateContext = async (purpose, code = null) => {
|
2021-04-23 04:57:38 +12:00
|
|
|
const db = new CouchDB(StaticDatabases.GLOBAL.name)
|
2021-05-06 05:00:22 +12:00
|
|
|
// TODO: use more granular settings in the future if required
|
2021-05-06 21:51:21 +12:00
|
|
|
const settings = await getScopedConfig(db, { type: Configs.SETTINGS })
|
2021-04-24 05:54:12 +12:00
|
|
|
if (!settings.platformUrl) {
|
|
|
|
settings.platformUrl = LOCAL_URL
|
2021-04-23 04:57:38 +12:00
|
|
|
}
|
2021-04-24 05:54:12 +12:00
|
|
|
const URL = settings.platformUrl
|
2021-05-05 23:11:06 +12:00
|
|
|
const context = {
|
2021-05-08 01:30:37 +12:00
|
|
|
[TemplateBindings.LOGO_URL]:
|
|
|
|
checkSlashesInUrl(`${URL}/${settings.logoUrl}`) || LOGO_URL,
|
2021-04-24 05:54:12 +12:00
|
|
|
[TemplateBindings.PLATFORM_URL]: URL,
|
2021-04-23 04:57:38 +12:00
|
|
|
[TemplateBindings.COMPANY]: settings.company || BASE_COMPANY,
|
2021-04-27 01:16:05 +12:00
|
|
|
[TemplateBindings.DOCS_URL]:
|
|
|
|
settings.docsUrl || "https://docs.budibase.com/",
|
2021-04-27 01:14:51 +12:00
|
|
|
[TemplateBindings.LOGIN_URL]: checkSlashesInUrl(`${URL}/login`),
|
2021-04-27 01:24:07 +12:00
|
|
|
[TemplateBindings.CURRENT_DATE]: new Date().toISOString(),
|
|
|
|
[TemplateBindings.CURRENT_YEAR]: new Date().getFullYear(),
|
2021-04-23 04:57:38 +12:00
|
|
|
}
|
2021-05-05 23:11:06 +12:00
|
|
|
// attach purpose specific context
|
|
|
|
switch (purpose) {
|
|
|
|
case EmailTemplatePurpose.PASSWORD_RECOVERY:
|
|
|
|
context[TemplateBindings.RESET_CODE] = code
|
|
|
|
context[TemplateBindings.RESET_URL] = checkSlashesInUrl(
|
2021-05-06 05:13:59 +12:00
|
|
|
`${URL}/reset?code=${code}`
|
2021-05-05 23:11:06 +12:00
|
|
|
)
|
|
|
|
break
|
|
|
|
case EmailTemplatePurpose.INVITATION:
|
|
|
|
context[TemplateBindings.INVITE_CODE] = code
|
2021-05-11 02:05:06 +12:00
|
|
|
context[TemplateBindings.INVITE_URL] = checkSlashesInUrl(
|
2021-05-06 05:13:59 +12:00
|
|
|
`${URL}/invite?code=${code}`
|
2021-05-05 23:11:06 +12:00
|
|
|
)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
return context
|
2021-04-23 04:58:14 +12:00
|
|
|
}
|