From 2944c7d6afd3becb3e12206deb47cdcc2591d998 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 15 Feb 2026 13:13:21 +0000 Subject: [PATCH] refactor(slack): dedupe onboarding config patching --- src/channels/plugins/onboarding/slack.ts | 48 +++++++----------------- 1 file changed, 13 insertions(+), 35 deletions(-) diff --git a/src/channels/plugins/onboarding/slack.ts b/src/channels/plugins/onboarding/slack.ts index 45afa48ca2..daacc66fed 100644 --- a/src/channels/plugins/onboarding/slack.ts +++ b/src/channels/plugins/onboarding/slack.ts @@ -124,10 +124,10 @@ async function noteSlackTokenHelp(prompter: WizardPrompter, botName: string): Pr ); } -function setSlackGroupPolicy( +function patchSlackConfigForAccount( cfg: OpenClawConfig, accountId: string, - groupPolicy: "open" | "allowlist" | "disabled", + patch: Record, ): OpenClawConfig { if (accountId === DEFAULT_ACCOUNT_ID) { return { @@ -137,7 +137,7 @@ function setSlackGroupPolicy( slack: { ...cfg.channels?.slack, enabled: true, - groupPolicy, + ...patch, }, }, }; @@ -154,7 +154,7 @@ function setSlackGroupPolicy( [accountId]: { ...cfg.channels?.slack?.accounts?.[accountId], enabled: cfg.channels?.slack?.accounts?.[accountId]?.enabled ?? true, - groupPolicy, + ...patch, }, }, }, @@ -162,43 +162,21 @@ function setSlackGroupPolicy( }; } +function setSlackGroupPolicy( + cfg: OpenClawConfig, + accountId: string, + groupPolicy: "open" | "allowlist" | "disabled", +): OpenClawConfig { + return patchSlackConfigForAccount(cfg, accountId, { groupPolicy }); +} + function setSlackChannelAllowlist( cfg: OpenClawConfig, accountId: string, channelKeys: string[], ): OpenClawConfig { const channels = Object.fromEntries(channelKeys.map((key) => [key, { allow: true }])); - if (accountId === DEFAULT_ACCOUNT_ID) { - return { - ...cfg, - channels: { - ...cfg.channels, - slack: { - ...cfg.channels?.slack, - enabled: true, - channels, - }, - }, - }; - } - return { - ...cfg, - channels: { - ...cfg.channels, - slack: { - ...cfg.channels?.slack, - enabled: true, - accounts: { - ...cfg.channels?.slack?.accounts, - [accountId]: { - ...cfg.channels?.slack?.accounts?.[accountId], - enabled: cfg.channels?.slack?.accounts?.[accountId]?.enabled ?? true, - channels, - }, - }, - }, - }, - }; + return patchSlackConfigForAccount(cfg, accountId, { channels }); } function setSlackAllowFrom(cfg: OpenClawConfig, allowFrom: string[]): OpenClawConfig {