feat: let SuperAdmin rename SMS template variable names
Store custom sms.ir parameter names per template slot so outbound messages match the panel placeholders.
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
|
||||
const { sendSingleSms } = require('./sms.base');
|
||||
const { recordAndSend } = require('./notificationRecorder');
|
||||
const { getSmsTemplateId } = require('../../components/settings/settingService');
|
||||
const { getSmsTemplate } = require('../../components/settings/settingService');
|
||||
const { buildSmsParameters } = require('../../components/settings/smsTemplates');
|
||||
const User = require('../../components/users/userModel');
|
||||
|
||||
const resolveUserIdByPhone = async (phoneNumber) => {
|
||||
@@ -14,55 +15,55 @@ const resolveUserIdByPhone = async (phoneNumber) => {
|
||||
|
||||
const sendAccountCreatedSms = async (receiver, username, password, userId = null) => {
|
||||
const resolvedUserId = userId || await resolveUserIdByPhone(receiver);
|
||||
const templateId = await getSmsTemplateId('accountCreated');
|
||||
const { templateId, variables } = await getSmsTemplate('accountCreated');
|
||||
return recordAndSend({
|
||||
userId: resolvedUserId,
|
||||
channel: 'sms',
|
||||
subject: 'ایجاد حساب کاربری',
|
||||
body: `حساب کاربری شما ایجاد شد. نام کاربری: ${username}`,
|
||||
relatedEvent: 'user.created',
|
||||
sendFn: () => sendSingleSms(receiver, templateId, [
|
||||
{ name: 'user', value: String(username) },
|
||||
{ name: 'password', value: String(password) }
|
||||
])
|
||||
sendFn: () => sendSingleSms(receiver, templateId, buildSmsParameters(variables, {
|
||||
username,
|
||||
password
|
||||
}))
|
||||
});
|
||||
};
|
||||
|
||||
const sendClassRegisteredSms = async (receiver, className, userId = null) => {
|
||||
const resolvedUserId = userId || await resolveUserIdByPhone(receiver);
|
||||
const templateId = await getSmsTemplateId('classRegistered');
|
||||
const { templateId, variables } = await getSmsTemplate('classRegistered');
|
||||
return recordAndSend({
|
||||
userId: resolvedUserId,
|
||||
channel: 'sms',
|
||||
subject: 'ثبتنام در کلاس',
|
||||
body: `ثبتنام شما در کلاس «${className}» انجام شد.`,
|
||||
relatedEvent: 'user.enrolled',
|
||||
sendFn: () => sendSingleSms(receiver, templateId, [
|
||||
{ name: 'className', value: String(className) }
|
||||
])
|
||||
sendFn: () => sendSingleSms(receiver, templateId, buildSmsParameters(variables, {
|
||||
className
|
||||
}))
|
||||
});
|
||||
};
|
||||
|
||||
const sendClassReminderSms = async (receiver, className, time, place = '', userId = null) => {
|
||||
const resolvedUserId = userId || await resolveUserIdByPhone(receiver);
|
||||
const templateId = await getSmsTemplateId('classReminder');
|
||||
const { templateId, variables } = await getSmsTemplate('classReminder');
|
||||
return recordAndSend({
|
||||
userId: resolvedUserId,
|
||||
channel: 'sms',
|
||||
subject: 'یادآوری کلاس',
|
||||
body: `یادآوری کلاس «${className}» ساعت ${time} — مکان: ${place || '-'}`,
|
||||
relatedEvent: 'session.reminder',
|
||||
sendFn: () => sendSingleSms(receiver, templateId, [
|
||||
{ name: 'className', value: String(className) },
|
||||
{ name: 'time', value: String(time) },
|
||||
{ name: 'place', value: String(place || '-') }
|
||||
])
|
||||
sendFn: () => sendSingleSms(receiver, templateId, buildSmsParameters(variables, {
|
||||
className,
|
||||
time,
|
||||
place: place || '-'
|
||||
}))
|
||||
});
|
||||
};
|
||||
|
||||
const sendInvoiceCreatedSms = async (receiver, amount, userId = null) => {
|
||||
const resolvedUserId = userId || await resolveUserIdByPhone(receiver);
|
||||
const templateId = await getSmsTemplateId('invoiceCreated');
|
||||
const { templateId, variables } = await getSmsTemplate('invoiceCreated');
|
||||
const amountLabel = String(amount);
|
||||
return recordAndSend({
|
||||
userId: resolvedUserId,
|
||||
@@ -70,9 +71,9 @@ const sendInvoiceCreatedSms = async (receiver, amount, userId = null) => {
|
||||
subject: 'ایجاد صورتحساب',
|
||||
body: `صورتحساب جدید به مبلغ ${amountLabel} تومان صادر شد.`,
|
||||
relatedEvent: 'payment.created',
|
||||
sendFn: () => sendSingleSms(receiver, templateId, [
|
||||
{ name: 'amount', value: amountLabel }
|
||||
])
|
||||
sendFn: () => sendSingleSms(receiver, templateId, buildSmsParameters(variables, {
|
||||
amount: amountLabel
|
||||
}))
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user