UNPKG

@hoover-institution/hubspot-lib

Version:

A toolkit for deep integration with HubSpot's Marketing Events API with a plugin-based architecture.

136 lines (122 loc) 3.41 kB
import { castHook } from "../core/pluginSDK.js"; import { PLUGINS } from "../core/plugins.js"; import { EVENTS } from "../core/events.js"; // LOG_TO_CONSOLE plugin: logs all MarketingEvent actions to the console castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.CREATE_EVENT, ({ eventName, externalEventId, status }) => { console.log( `[LOG][CreateEvent] ${eventName} (ID: ${externalEventId}) → ${status}` ); return { statusCode: 200, message: "CreateEvent logged" }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.GET_EVENT, ({ externalEventId, found }) => { console.log( `[LOG][GetEvent] ID: ${externalEventId}${ found ? "Found" : "Not Found" }` ); return { statusCode: 200, found }; } ); castHook(PLUGINS.LOG_TO_CONSOLE, EVENTS.GET_EVENTS, ({ count }) => { console.log(`[LOG][GetEvents] Total events: ${count}`); return { statusCode: 200, count }; }); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.DELETE_EVENT, ({ externalEventId, success }) => { console.log( `[LOG][DeleteEvent] ID: ${externalEventId}${ success ? "Deleted" : "Failed" }` ); return { statusCode: success ? 200 : 404, deleted: success }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.REGISTER_EMAIL, ({ email, subscriberState, externalEventId }) => { console.log( `[LOG][Register] ${email}${subscriberState} (Event ID: ${externalEventId})` ); return { statusCode: 200, email, subscriberState }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.GET_CONTACTS_BY_STATE, ({ externalEventId, subscriberState, count }) => { console.log( `[LOG][GetContactsByState] Event ID: ${externalEventId}, State: ${subscriberState}${count} contacts` ); return { statusCode: 200, count }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.CREATE_OR_FIND_CONTACT_LIST, ({ listName, listId, created }) => { console.log( `[LOG][CreateOrFindContactList] ${listName} (ID: ${listId}) → ${ created ? "Created" : "Found" }` ); return { statusCode: 200, listId, created }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.GET_CONTACT_EVENT_STATE, ({ email, externalEventId, state }) => { console.log( `[LOG][GetContactEventState] ${email} (Event ID: ${externalEventId}) → ${state}` ); return { statusCode: 200, state }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.ADD_CONTACT_TO_LIST, ({ listId, contactId }) => { console.log( `[LOG][AddContactToList] Contact ID: ${contactId} → List ID: ${listId}` ); return { statusCode: 200, contactId, listId }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.REMOVE_CONTACT_FROM_LIST, ({ listId, contactId }) => { console.log( `[LOG][RemoveContactFromList] Contact ID: ${contactId} ← List ID: ${listId}` ); return { statusCode: 200, contactId, listId }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.ASSOCIATE_LIST_WITH_EVENT, ({ eventId, listId }) => { console.log( `[LOG][AssociateListWithEvent] List ID: ${listId} ↔ Event ID: ${eventId}` ); return { statusCode: 200, eventId, listId }; } ); castHook( PLUGINS.LOG_TO_CONSOLE, EVENTS.MARKETING_EVENT_ERROR, ({ action, error }) => { console.error(`[LOG][Error] ${action}:`, error); return { statusCode: 500, error: error.message }; } );