UNPKG

@causalfoundry/js-sdk

Version:

Causal Foundry WEB SDK (JS/TS)

69 lines (64 loc) 1.88 kB
import { injectEvent } from "../../core/injector"; import { PaymentMethodProperties, PaymentsEventTypes } from "./typings"; import CfExceptionHandler from "../../core/CfExceptionHandler"; /** * * @param eventType * @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 * @param eventTime */ const logIngestEvent = async ( eventType: PaymentsEventTypes, properties: PaymentMethodProperties, userId = "", sendNow = false, eventTime?: string ) => { if (properties.payment_id == "") { new CfExceptionHandler().throwAndLogError( PaymentsEventTypes.Payment, "empty payment method id. If there is no payment method id then provide payment_<user_id>" ); } else if (properties.action == undefined) { new CfExceptionHandler().throwAndLogError( PaymentsEventTypes.Payment, "invalid payment method action" ); } else if (properties.order_id == "") { new CfExceptionHandler().throwAndLogError( PaymentsEventTypes.Payment, "empty payment method order id" ); } else if (properties.type == undefined) { new CfExceptionHandler().throwAndLogError( PaymentsEventTypes.Payment, "invalid payment method type" ); } else if (properties.payment_amount < 0) { new CfExceptionHandler().throwAndLogError( PaymentsEventTypes.Payment, "negative payment method payment amount" ); } else if (properties.currency == undefined) { new CfExceptionHandler().throwAndLogError( PaymentsEventTypes.Payment, "invalid payment method currency" ); } const internalProps = { ...properties, }; injectEvent( eventType, properties.action, internalProps, sendNow, userId, eventTime ); }; export default { logIngestEvent, };