feat(professors,sms): merge professor with users, add existing user link, professor portal endpoint, and SMS bypass list
This commit is contained in:
@@ -22,7 +22,7 @@ const redactSmsParams = (params = []) => (
|
||||
);
|
||||
|
||||
const sendSingleSms = async (mobile, templateId, params = []) => {
|
||||
const channelState = await getMessagingChannelState('sms');
|
||||
const channelState = await getMessagingChannelState('sms', mobile);
|
||||
|
||||
logger.info('[SMS] About to send notification:', {
|
||||
mobile,
|
||||
@@ -30,6 +30,7 @@ const sendSingleSms = async (mobile, templateId, params = []) => {
|
||||
params: redactSmsParams(params),
|
||||
SMS_ENABLED: channelState.envEnabled,
|
||||
dashboardEnabled: channelState.dbEnabled,
|
||||
bypassActive: Boolean(channelState.bypass)
|
||||
});
|
||||
|
||||
if (!channelState.enabled) {
|
||||
|
||||
@@ -5,6 +5,7 @@ const { sendSingleSms } = require('./sms.base');
|
||||
const { recordAndSend } = require('./notificationRecorder');
|
||||
const { getSmsTemplate } = require('../../components/settings/settingService');
|
||||
const { buildSmsParameters, renderSmsText } = require('../../components/settings/smsTemplates');
|
||||
const { isSmsBypassNumber } = require('../../components/settings/messagingFlags');
|
||||
const User = require('../../components/users/userModel');
|
||||
const logger = require('../logger');
|
||||
|
||||
@@ -34,7 +35,8 @@ const sendTemplateSms = async ({
|
||||
}) => {
|
||||
const resolvedUserId = userId || await resolveUserIdByPhone(receiver);
|
||||
const { templateId, variables, enabled, text: templateText } = await getSmsTemplate(templateKey);
|
||||
if (enabled === false) {
|
||||
const isBypass = await isSmsBypassNumber(receiver);
|
||||
if (enabled === false && !isBypass) {
|
||||
logger.info(`[SMS] Template ${templateKey} is disabled. Skipping SMS send to ${receiver}.`);
|
||||
return { success: true, skipped: true, reason: 'template_disabled' };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user