@causalfoundry/js-sdk
Version:
Causal Foundry WEB SDK (JS/TS)
69 lines (64 loc) • 1.88 kB
text/typescript
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,
};