@causalfoundry/js-sdk
Version:
Causal Foundry WEB SDK (JS/TS)
78 lines (67 loc) • 1.95 kB
text/typescript
import {
LegacyCancelCheckoutProperties,
LegacyCheckoutProperties,
LegacyCartProperties,
LegacyDeliveryProperties,
LegacyItemProperties,
} from "./legacyTypes";
import {
checkoutPropertiesMapper,
checkoutEventMapper,
cartPropertiesMapper,
deliveryPropertiesMapper,
itemPropertiesMapper,
} from "./mappers";
import { DrugCatalog, ECommerceCatalogType, ECommerceTypes } from "./typings";
import { logIngestEvent } from "./logIngestEvent";
import { logCatalogEvent } from ".";
const logCancelCheckoutEvent = (
properties: LegacyCancelCheckoutProperties,
sendNow = false
) => {
const newProperties = checkoutPropertiesMapper(properties);
logIngestEvent(ECommerceTypes.CancelCheckout, newProperties, sendNow);
};
const logCheckoutEvent = async (
properties: LegacyCheckoutProperties,
userId = "",
sendNow = false
): Promise<void> => {
const newProperties = checkoutEventMapper(properties);
logIngestEvent(ECommerceTypes.Checkout, newProperties, sendNow);
};
const logCartEvent = async (
properties: LegacyCartProperties,
sendNow = false
): Promise<void> => {
const newProperties = cartPropertiesMapper(properties);
logIngestEvent(ECommerceTypes.Cart, newProperties, sendNow);
};
const logDeliveryEvent = (
properties: LegacyDeliveryProperties,
userId = "",
sendNow = false
): void => {
const newProperties = deliveryPropertiesMapper(properties);
logIngestEvent(ECommerceTypes.Delivery, newProperties, sendNow);
};
const logItemEvent = async (
properties: LegacyItemProperties,
productProperties?: DrugCatalog,
sendNow = false
): Promise<void> => {
const newProperties = itemPropertiesMapper(properties);
logIngestEvent(ECommerceTypes.Item, newProperties, sendNow);
logCatalogEvent(
properties.item.id,
ECommerceCatalogType.Drug,
productProperties
);
};
export {
logCancelCheckoutEvent,
logCheckoutEvent,
logCartEvent,
logDeliveryEvent,
logItemEvent,
};