增加feifei履约配置界面
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
import { getKuaishouFeifeiConfig } from '../../platforms/kuaishou-feifei/config.js'
|
||||
import { resolveKuaishouFeifeiProductByName } from '../../platforms/kuaishou-feifei/product-rule-service.js'
|
||||
import {
|
||||
getKuaishouFeifeiConfigFilePath,
|
||||
getKuaishouFeifeiSourceConfig,
|
||||
hasKuaishouFeifeiConfigFile,
|
||||
normalizeKuaishouFeifeiSourceConfig,
|
||||
saveKuaishouFeifeiSourceConfig,
|
||||
} from '../../platforms/kuaishou-feifei/source-config-service.js'
|
||||
import { normalizeCloudtentaclesMatchName } from '../../order/cloudtentacles-match-utils.js'
|
||||
|
||||
type JsonObject = Record<string, any>
|
||||
|
||||
export function getAdminKuaishouFeifeiConfig() {
|
||||
const source = getAdminEditableKuaishouFeifeiConfig()
|
||||
const effective = getKuaishouFeifeiConfig()
|
||||
|
||||
return {
|
||||
filePath: getKuaishouFeifeiConfigFilePath(),
|
||||
source,
|
||||
effective: mapEffectiveKuaishouFeifeiConfig(effective),
|
||||
}
|
||||
}
|
||||
|
||||
export function updateAdminKuaishouFeifeiConfig(payload: JsonObject = {}) {
|
||||
const saved = saveKuaishouFeifeiSourceConfig(payload)
|
||||
const effective = getKuaishouFeifeiConfig()
|
||||
|
||||
return {
|
||||
filePath: getKuaishouFeifeiConfigFilePath(),
|
||||
source: saved,
|
||||
effective: mapEffectiveKuaishouFeifeiConfig(effective),
|
||||
}
|
||||
}
|
||||
|
||||
export function matchAdminKuaishouFeifeiProduct(payload: JsonObject = {}) {
|
||||
const productName = String(payload.productName || '').trim()
|
||||
const source = getAdminEditableKuaishouFeifeiConfig()
|
||||
const match = resolveKuaishouFeifeiProductByName(productName, {
|
||||
enabled: source.enabled,
|
||||
rules: source.productRules,
|
||||
})
|
||||
|
||||
return {
|
||||
productName,
|
||||
normalizedProductName: normalizeCloudtentaclesMatchName(productName),
|
||||
matched: Boolean(match),
|
||||
match,
|
||||
}
|
||||
}
|
||||
|
||||
function getAdminEditableKuaishouFeifeiConfig() {
|
||||
if (hasKuaishouFeifeiConfigFile()) {
|
||||
return getKuaishouFeifeiSourceConfig()
|
||||
}
|
||||
|
||||
return normalizeKuaishouFeifeiSourceConfig(getKuaishouFeifeiConfig())
|
||||
}
|
||||
|
||||
function mapEffectiveKuaishouFeifeiConfig(config: ReturnType<typeof getKuaishouFeifeiConfig>) {
|
||||
return {
|
||||
enabled: config.enabled !== false,
|
||||
baseUrl: config.baseUrl,
|
||||
timeoutMs: config.timeoutMs,
|
||||
notifyUrl: config.notifyUrl,
|
||||
hasAppKey: Boolean(config.appKey),
|
||||
hasAppSecret: Boolean(config.appSecret),
|
||||
productRuleCount: config.productRules.length,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user