fix: sms receipt data construction
This commit is contained in:
parent
9506b98b47
commit
154fe7affb
3 changed files with 47 additions and 45 deletions
|
|
@ -3,6 +3,7 @@ const router = express.Router()
|
|||
const semver = require('semver')
|
||||
const sms = require('../sms')
|
||||
const _ = require('lodash/fp')
|
||||
const BN = require('../bn')
|
||||
|
||||
const compliance = require('../compliance')
|
||||
const complianceTriggers = require('../compliance-triggers')
|
||||
|
|
@ -12,6 +13,10 @@ const txs = require('../new-admin/services/transactions')
|
|||
const httpError = require('../route-helpers').httpError
|
||||
const notifier = require('../notifier')
|
||||
const respond = require('../respond')
|
||||
const { getTx } = require('../new-admin/services/transactions.js')
|
||||
const { getCustomerById } = require('../customers')
|
||||
const machineLoader = require('../machine-loader')
|
||||
const { loadLatestConfig } = require('../new-settings-loader')
|
||||
|
||||
function updateCustomer (req, res, next) {
|
||||
const id = req.params.id
|
||||
|
|
@ -117,9 +122,46 @@ function updateTxCustomerPhoto (req, res, next) {
|
|||
.catch(next)
|
||||
}
|
||||
|
||||
function buildSms (data, receiptOptions) {
|
||||
return Promise.all([getTx(data.session, data.txClass), loadLatestConfig()])
|
||||
.then(([tx, config]) => {
|
||||
return Promise.all([getCustomerById(tx.customer_id), machineLoader.getMachine(tx.device_id, config)])
|
||||
.then(([customer, deviceConfig]) => {
|
||||
const formattedTx = _.mapKeys(_.camelCase)(tx)
|
||||
const localeConfig = configManager.getLocale(formattedTx.deviceId, config)
|
||||
const timezone = localeConfig.timezone.split(':')
|
||||
const dstOffset = timezone[1]
|
||||
|
||||
const cashInCommission = new BN(1).plus(new BN(formattedTx.commissionPercentage))
|
||||
|
||||
const rate = new BN(formattedTx.rawTickerPrice).multipliedBy(cashInCommission).decimalPlaces(2)
|
||||
const date = new Date()
|
||||
date.setMinutes(date.getMinutes() + parseInt(dstOffset))
|
||||
const dateString = `${date.toISOString().replace('T', ' ').slice(0, 19)}`
|
||||
|
||||
const data = {
|
||||
operatorInfo: configManager.getOperatorInfo(config),
|
||||
location: deviceConfig.machineLocation,
|
||||
customerName: customer.name,
|
||||
customerPhone: customer.phone,
|
||||
session: formattedTx.id,
|
||||
time: dateString,
|
||||
direction: formattedTx.direction === 'cashIn' ? 'Cash-in' : 'Cash-out',
|
||||
fiat: `${formattedTx.fiat.toString()} ${formattedTx.fiatCode}`,
|
||||
crypto: `${sms.toCryptoUnits(BN(formattedTx.cryptoAtoms), formattedTx.cryptoCode)} ${formattedTx.cryptoCode}`,
|
||||
rate: `1 ${formattedTx.cryptoCode} = ${rate} ${formattedTx.fiatCode}`,
|
||||
address: formattedTx.toAddress,
|
||||
txId: formattedTx.txHash
|
||||
}
|
||||
|
||||
return sms.formatSmsReceipt(data, receiptOptions)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function sendSmsReceipt (req, res, next) {
|
||||
const receiptOptions = _.omit(['active', 'sms'], configManager.getReceipt(req.settings.config))
|
||||
sms.buildSms(req.body.data, receiptOptions)
|
||||
buildSms(req.body.data, receiptOptions)
|
||||
.then(smsRequest => {
|
||||
sms.sendMessage(req.settings, smsRequest)
|
||||
.then(() => respond(req, res, {}))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue