Files
vps-tracker/server/utils/billmanager-context.js
T
2026-03-21 00:52:49 +07:00

30 lines
1.3 KiB
JavaScript

/**
* BILLmanager: URL и тип API задаются на хостере (providers), учётные данные — на аккаунте.
* Поддержка fallback на поля аккаунта для старых данных до миграции.
*/
/**
* @param {object|null|undefined} accountRow
* @param {object|null|undefined} providerRow
* @returns {{ apiType: string, apiBaseUrl: string }}
*/
export function resolveBillmanagerApi(accountRow, providerRow) {
const apiType = String(providerRow?.apiType || accountRow?.apiType || '').trim()
const apiBaseUrl = String(providerRow?.apiBaseUrl || accountRow?.apiBaseUrl || '').trim()
return { apiType, apiBaseUrl }
}
/**
* Объект аккаунта с подставленным URL для syncFromBillmanager / balance.
* @param {object} accountRow
* @param {object|null|undefined} providerRow
* @returns {object|null} null если не готово к запросам API
*/
export function billmanagerAccountRowForSync(accountRow, providerRow) {
if (!accountRow) return null
const { apiType, apiBaseUrl } = resolveBillmanagerApi(accountRow, providerRow)
const cred = String(accountRow.apiCredentials || '').trim()
if (apiType !== 'billmanager' || !apiBaseUrl || !cred) return null
return { ...accountRow, apiType: 'billmanager', apiBaseUrl }
}