refactor(zalo): split monitor access and webhook logic

This commit is contained in:
Peter Steinberger
2026-02-24 23:40:21 +00:00
parent 58309fd8d9
commit 453664f09d
8 changed files with 486 additions and 289 deletions

View File

@@ -9,6 +9,25 @@ export function formatAllowFromLowercase(params: {
.map((entry) => entry.toLowerCase());
}
export function isNormalizedSenderAllowed(params: {
senderId: string | number;
allowFrom: Array<string | number>;
stripPrefixRe?: RegExp;
}): boolean {
const normalizedAllow = formatAllowFromLowercase({
allowFrom: params.allowFrom,
stripPrefixRe: params.stripPrefixRe,
});
if (normalizedAllow.length === 0) {
return false;
}
if (normalizedAllow.includes("*")) {
return true;
}
const sender = String(params.senderId).trim().toLowerCase();
return normalizedAllow.includes(sender);
}
type ParsedChatAllowTarget =
| { kind: "chat_id"; chatId: number }
| { kind: "chat_guid"; chatGuid: string }