mirror of https://github.com/openclaw/openclaw.git
30 lines
906 B
TypeScript
30 lines
906 B
TypeScript
import { resolveWhatsAppAccount } from "./accounts.js";
|
|
import {
|
|
ToolAuthorizationError,
|
|
resolveWhatsAppOutboundTarget,
|
|
type OpenClawConfig,
|
|
} from "./runtime-api.js";
|
|
|
|
export function resolveAuthorizedWhatsAppOutboundTarget(params: {
|
|
cfg: OpenClawConfig;
|
|
chatJid: string;
|
|
accountId?: string;
|
|
actionLabel: string;
|
|
}): { to: string; accountId: string } {
|
|
const account = resolveWhatsAppAccount({
|
|
cfg: params.cfg,
|
|
accountId: params.accountId,
|
|
});
|
|
const resolution = resolveWhatsAppOutboundTarget({
|
|
to: params.chatJid,
|
|
allowFrom: account.allowFrom ?? [],
|
|
mode: "implicit",
|
|
});
|
|
if (!resolution.ok) {
|
|
throw new ToolAuthorizationError(
|
|
`WhatsApp ${params.actionLabel} blocked: chatJid "${params.chatJid}" is not in the configured allowFrom list for account "${account.accountId}".`,
|
|
);
|
|
}
|
|
return { to: resolution.to, accountId: account.accountId };
|
|
}
|