2023-02-23 14:42:10 +01:00
|
|
|
import { tenancy, configs } from "@budibase/backend-core"
|
2022-11-16 19:13:34 +01:00
|
|
|
import {
|
|
|
|
InternalTemplateBinding,
|
2021-05-05 13:11:31 +02:00
|
|
|
LOGO_URL,
|
|
|
|
EmailTemplatePurpose,
|
2022-11-16 19:13:34 +01:00
|
|
|
} from "../constants"
|
|
|
|
import { checkSlashesInUrl } from "./index"
|
2021-04-22 18:57:38 +02:00
|
|
|
const BASE_COMPANY = "Budibase"
|
|
|
|
|
2022-11-16 19:13:34 +01:00
|
|
|
export async function getSettingsTemplateContext(
|
|
|
|
purpose: EmailTemplatePurpose,
|
2023-02-23 14:42:10 +01:00
|
|
|
code?: string | null
|
2022-11-16 19:13:34 +01:00
|
|
|
) {
|
2023-02-23 14:42:10 +01:00
|
|
|
let settings = await configs.getSettingsConfig()
|
2021-04-23 19:54:12 +02:00
|
|
|
const URL = settings.platformUrl
|
2022-11-16 19:13:34 +01:00
|
|
|
const context: any = {
|
|
|
|
[InternalTemplateBinding.LOGO_URL]:
|
2021-05-07 15:30:37 +02:00
|
|
|
checkSlashesInUrl(`${URL}/${settings.logoUrl}`) || LOGO_URL,
|
2022-11-16 19:13:34 +01:00
|
|
|
[InternalTemplateBinding.PLATFORM_URL]: URL,
|
|
|
|
[InternalTemplateBinding.COMPANY]: settings.company || BASE_COMPANY,
|
2023-02-23 14:42:10 +01:00
|
|
|
[InternalTemplateBinding.DOCS_URL]: "https://docs.budibase.com/",
|
2022-11-16 19:13:34 +01:00
|
|
|
[InternalTemplateBinding.LOGIN_URL]: checkSlashesInUrl(
|
|
|
|
tenancy.addTenantToUrl(`${URL}/login`)
|
2021-08-05 10:59:08 +02:00
|
|
|
),
|
2022-11-16 19:13:34 +01:00
|
|
|
[InternalTemplateBinding.CURRENT_DATE]: new Date().toISOString(),
|
|
|
|
[InternalTemplateBinding.CURRENT_YEAR]: new Date().getFullYear(),
|
2021-04-22 18:57:38 +02:00
|
|
|
}
|
2021-05-05 13:11:06 +02:00
|
|
|
// attach purpose specific context
|
|
|
|
switch (purpose) {
|
|
|
|
case EmailTemplatePurpose.PASSWORD_RECOVERY:
|
2022-11-16 19:13:34 +01:00
|
|
|
context[InternalTemplateBinding.RESET_CODE] = code
|
|
|
|
context[InternalTemplateBinding.RESET_URL] = checkSlashesInUrl(
|
|
|
|
tenancy.addTenantToUrl(`${URL}/builder/auth/reset?code=${code}`)
|
2021-05-05 13:11:06 +02:00
|
|
|
)
|
|
|
|
break
|
|
|
|
case EmailTemplatePurpose.INVITATION:
|
2022-11-16 19:13:34 +01:00
|
|
|
context[InternalTemplateBinding.INVITE_CODE] = code
|
|
|
|
context[InternalTemplateBinding.INVITE_URL] = checkSlashesInUrl(
|
|
|
|
tenancy.addTenantToUrl(`${URL}/builder/invite?code=${code}`)
|
2021-05-05 13:11:06 +02:00
|
|
|
)
|
|
|
|
break
|
|
|
|
}
|
|
|
|
return context
|
2021-04-22 18:58:14 +02:00
|
|
|
}
|