Files
openclaw/extensions/zalo/src/approval-auth.ts
2026-03-30 09:04:08 +09:00

26 lines
831 B
TypeScript

import {
createResolvedApproverActionAuthAdapter,
resolveApprovalApprovers,
} from "openclaw/plugin-sdk/approval-runtime";
import { resolveZaloAccount } from "./accounts.js";
function normalizeZaloApproverId(value: string | number): string | undefined {
const normalized = String(value)
.trim()
.replace(/^(zalo|zl):/i, "")
.trim();
return /^\d+$/.test(normalized) ? normalized : undefined;
}
export const zaloApprovalAuth = createResolvedApproverActionAuthAdapter({
channelLabel: "Zalo",
resolveApprovers: ({ cfg, accountId }) => {
const account = resolveZaloAccount({ cfg, accountId }).config;
return resolveApprovalApprovers({
allowFrom: account.allowFrom,
normalizeApprover: normalizeZaloApproverId,
});
},
normalizeSenderId: (value) => normalizeZaloApproverId(value),
});