@srsl/tools
Version:
JavaScript tools for common interfaces
49 lines (44 loc) • 1.43 kB
JavaScript
const handlebars = require('handlebars')
const { AWS, sns } = require('../../constructors/aws-sdk')
const { createVerificationCode } = require('../')
const i18n = {
'en': {
'MFA_CODE': 'Here is your requested code: {{code}}. Don\'t share this code with anyone.',
'MFA_SUBJECT': 'Your requested code.',
},
'zh': {
'MFA_CODE': '以下是您要求的a代码:{{code}}。不要与任何人分享此代码。',
'MFA_SUBJECT': '您要求的代码。',
},
}
const sendPhoneVerificationText = async (
{ phone, phoneCountryCode },
{
subject,
template,
language,
codeLength = 6,
},
) => {
const lang = language || 'en'
const codeLen = codeLength || 6
const code = createVerificationCode(codeLen)
const Subject = subject || i18n[lang].MFA_SUBJECT
const messageTemplate = template || i18n[lang].MFA_CODE
const params = {
Message: handlebars.compile(messageTemplate)({ code }),
PhoneNumber: `+${phoneCountryCode}${phone}`,
Subject,
}
console.log('sending txt message', params)
let result = {
ResponseMetadata: { RequestId: '91059ad0-23ef-55c0-ac18-cfe044225fa7' },
MessageId: '09a444c6-7624-5ff0-81f1-11f611e93597',
}
if (process.env.DEPLOYED_ENV === 'production') {
result = await sns.publish(params).promise()
}
console.log('result', result)
return { code, result }
}
module.exports.sendPhoneVerificationText = sendPhoneVerificationText