mirror of https://github.com/openclaw/openclaw.git
51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import {
|
|
DEFAULT_ACCOUNT_ID,
|
|
type ChannelSetupAdapter,
|
|
type OpenClawConfig,
|
|
} from "openclaw/plugin-sdk/setup";
|
|
import type { FeishuConfig } from "./types.js";
|
|
|
|
export function setFeishuNamedAccountEnabled(
|
|
cfg: OpenClawConfig,
|
|
accountId: string,
|
|
enabled: boolean,
|
|
): OpenClawConfig {
|
|
const feishuCfg = cfg.channels?.feishu as FeishuConfig | undefined;
|
|
return {
|
|
...cfg,
|
|
channels: {
|
|
...cfg.channels,
|
|
feishu: {
|
|
...feishuCfg,
|
|
accounts: {
|
|
...feishuCfg?.accounts,
|
|
[accountId]: {
|
|
...feishuCfg?.accounts?.[accountId],
|
|
enabled,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
export const feishuSetupAdapter: ChannelSetupAdapter = {
|
|
resolveAccountId: () => DEFAULT_ACCOUNT_ID,
|
|
applyAccountConfig: ({ cfg, accountId }) => {
|
|
const isDefault = !accountId || accountId === DEFAULT_ACCOUNT_ID;
|
|
if (isDefault) {
|
|
return {
|
|
...cfg,
|
|
channels: {
|
|
...cfg.channels,
|
|
feishu: {
|
|
...cfg.channels?.feishu,
|
|
enabled: true,
|
|
},
|
|
},
|
|
};
|
|
}
|
|
return setFeishuNamedAccountEnabled(cfg, accountId, true);
|
|
},
|
|
};
|