Files
botpress--botpress/integrations/zoho/src/misc/data-centers.ts
T
2026-07-13 13:34:48 +08:00

47 lines
1.4 KiB
TypeScript

export const DATA_CENTERS = ['us', 'eu', 'in', 'au', 'cn', 'jp', 'ca'] as const
export type DataCenter = (typeof DATA_CENTERS)[number]
export const DATA_CENTER_LABELS: Record<DataCenter, string> = {
us: 'US - accounts.zoho.com',
eu: 'EU - accounts.zoho.eu',
in: 'IN - accounts.zoho.in',
au: 'AU - accounts.zoho.com.au',
cn: 'CN - accounts.zoho.com.cn',
jp: 'JP - accounts.zoho.jp',
ca: 'CA - accounts.zohocloud.ca',
}
const ZOHO_AUTH_URLS: Record<DataCenter, string> = {
us: 'https://accounts.zoho.com',
eu: 'https://accounts.zoho.eu',
in: 'https://accounts.zoho.in',
au: 'https://accounts.zoho.com.au',
cn: 'https://accounts.zoho.com.cn',
jp: 'https://accounts.zoho.jp',
ca: 'https://accounts.zohocloud.ca',
}
const ZOHO_DATA_CENTER_TLDS: Record<DataCenter, string> = {
us: 'com',
eu: 'eu',
in: 'in',
au: 'com.au',
cn: 'com.cn',
jp: 'jp',
ca: 'ca',
}
export const DATA_CENTER_CHOICES: { label: string; value: DataCenter }[] = DATA_CENTERS.map((dataCenter) => ({
label: DATA_CENTER_LABELS[dataCenter],
value: dataCenter,
}))
export const isDataCenter = (value: string | undefined): value is DataCenter =>
DATA_CENTERS.includes(value as DataCenter)
export const getZohoAuthUrl = (dataCenter: DataCenter): string => ZOHO_AUTH_URLS[dataCenter]
export const getZohoApiBaseUrl = (dataCenter: DataCenter): string =>
`https://www.zohoapis.${ZOHO_DATA_CENTER_TLDS[dataCenter]}`