UNPKG

@causalfoundry/js-sdk

Version:

Causal Foundry WEB SDK (JS/TS)

78 lines (67 loc) 1.95 kB
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, };