UNPKG

@benshi.ai/js-sdk

Version:

Benshi SDK

80 lines (66 loc) 2.1 kB
import PaymentsPropertiesTI, { DeferredPaymentType } from './typings-ti' import { injectEvent } from "../../core/injector" import { DeferredPaymentProperties, PaymentMethodProperties, PaymentsMethodType, PaymentsTypes, } from './typings' import { ContentBlock } from '../Navigation/typings' import { ICurrencyRepository } from '../../core/repositories/currency/CurrencyRepository'; let currencyRepository: ICurrencyRepository; const moduleName = ContentBlock.Payment /** * * @param properties * @param {string} userId use this parameter when the logger user is not the same than the user who has created this log * @param sendNow */ const logPaymentMethodEvent = async (properties: PaymentMethodProperties, userId = '', sendNow = false) => { const internalProps = { ...properties, usd_rate: (await currencyRepository.convertCurrencyToUSD(properties.currency)).usd } injectEvent( internalProps, [PaymentsPropertiesTI], PaymentsTypes.PaymentMethod, moduleName, userId, sendNow ) } /** * * @param properties * @param {string} userId use this parameter when the logger user is not the same than the user who has created this log * @param sendNow */ const logDeferredPaymentEvent = async (properties: DeferredPaymentProperties, userId, sendNow = false): Promise<void> => { const internalProps = { ...properties, type: properties.type ? properties.type : PaymentsMethodType.BankTransfer, usd_rate: (await currencyRepository.convertCurrencyToUSD(properties.currency)).usd } injectEvent( internalProps, [PaymentsPropertiesTI], PaymentsTypes.DeferredPayment, moduleName, userId, sendNow ) } /** * Private function to inject CurrencyRepository * * @ignore */ const init = (injectedCurrencyRepository: ICurrencyRepository) => { currencyRepository = injectedCurrencyRepository } export default { logDeferredPaymentEvent, logPaymentMethodEvent, init }