forked from Yara724/api
YARA-941
This commit is contained in:
65
src/sms-orchestration/provider/parsian-template-messages.ts
Normal file
65
src/sms-orchestration/provider/parsian-template-messages.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import { VerifyLookUpMessage } from "./sms-gateway.types";
|
||||
|
||||
const TOKEN_KEYS = ["token", "token2", "token3", "token10"] as const;
|
||||
|
||||
/** Kavenegar template name → plain-text body for Parsian (placeholders: {token}, {token2}, …). */
|
||||
const PARSIAN_TEMPLATE_BODIES: Record<string, string> = {
|
||||
"yara724-invite-link":
|
||||
"کاربر محترم، لینک ورود به پرونده یارا724:\nشناسه: {token}\n{token2}",
|
||||
"yara-field-expert-link":
|
||||
"کارشناس میدانی بیمه {token} ({token2}) پرونده شما را بررسی میکند.\nلینک: {token3}",
|
||||
"yara-blame-agreement":
|
||||
"پرونده تصادف شما ({token}) آماده امضاست.\nلینک: {token2}",
|
||||
"yara-claim-link":
|
||||
"پرونده خسارت شما ({token}) آماده ثبت است.\nلینک: {token2}",
|
||||
"yara-expert-lock":
|
||||
"کارشناس ({token3}) پرونده {token} ({token2}) را در حال بررسی دارد.",
|
||||
"yara-resend-documents":
|
||||
"لطفاً مدارک پرونده {token} ({token2}) را مجدداً ارسال کنید.\nلینک: {token3}",
|
||||
"yara-signature":
|
||||
"امضای پرونده {token} ({token2}) توسط کارشناس {token3} بررسی شد.\nلینک: {token10}",
|
||||
};
|
||||
|
||||
function applyTokens(
|
||||
pattern: string,
|
||||
data: Pick<
|
||||
VerifyLookUpMessage,
|
||||
"token" | "token2" | "token3" | "token10"
|
||||
>,
|
||||
): string {
|
||||
let out = pattern;
|
||||
for (const key of TOKEN_KEYS) {
|
||||
const value = data[key];
|
||||
if (value != null && value !== "") {
|
||||
out = out.split(`{${key}}`).join(value);
|
||||
}
|
||||
|
||||
}
|
||||
return out.replace(/\{token\d*\}/g, "").trim();
|
||||
}
|
||||
|
||||
export function buildParsianTemplateMessage(
|
||||
data: VerifyLookUpMessage,
|
||||
): string {
|
||||
const authTemplate = process.env.AUTH_SMS_TEMPLATE?.trim();
|
||||
if (authTemplate && data.template === authTemplate) {
|
||||
const authMessage =
|
||||
process.env.AUTH_SMS_MESSAGE?.trim() ??
|
||||
"کاربر محترم رمز یکبار مصرف شما:\nCode: {token}";
|
||||
return applyTokens(authMessage, data);
|
||||
}
|
||||
|
||||
const body = PARSIAN_TEMPLATE_BODIES[data.template];
|
||||
if (body) {
|
||||
return applyTokens(body, data);
|
||||
}
|
||||
|
||||
const parts = [
|
||||
`پیام سیستم (${data.template})`,
|
||||
data.token ? `کد: ${data.token}` : "",
|
||||
data.token2 ?? "",
|
||||
data.token3 ?? "",
|
||||
data.token10 ?? "",
|
||||
].filter(Boolean);
|
||||
return parts.join("\n");
|
||||
}
|
||||
Reference in New Issue
Block a user