@memberjunction/actions-bizapps-crm
Version:
CRM system integration actions for MemberJunction
69 lines • 2.66 kB
TypeScript
import { BaseCRMAction } from '../../base/base-crm.action';
import { UserInfo } from '@memberjunction/core';
/**
* Base class for all HubSpot CRM actions.
* Handles HubSpot-specific authentication and API interaction patterns.
*/
export declare abstract class HubSpotBaseAction extends BaseCRMAction {
protected crmProvider: string;
protected integrationName: string;
/**
* HubSpot API version
*/
protected apiVersion: string;
/**
* Current action parameters (set by the framework)
*/
protected params: any;
/**
* Makes an authenticated request to HubSpot API
*/
protected makeHubSpotRequest<T = any>(endpoint: string, method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', body?: any, contextUser?: UserInfo): Promise<T>;
/**
* Makes a paginated request to HubSpot API using cursor-based pagination
*/
protected makeHubSpotPaginatedRequest<T = any>(endpoint: string, params?: Record<string, any>, contextUser?: UserInfo): Promise<T[]>;
/**
* Search HubSpot objects using the search API
*/
protected searchHubSpotObjects<T = any>(objectType: string, filters: Array<{
propertyName: string;
operator: string;
value: string;
}>, properties?: string[], contextUser?: UserInfo): Promise<T[]>;
/**
* Batch create objects in HubSpot
*/
protected batchCreateHubSpotObjects<T = any>(objectType: string, objects: Array<{
properties: Record<string, any>;
}>, contextUser?: UserInfo): Promise<T[]>;
/**
* Batch update objects in HubSpot
*/
protected batchUpdateHubSpotObjects<T = any>(objectType: string, updates: Array<{
id: string;
properties: Record<string, any>;
}>, contextUser?: UserInfo): Promise<T[]>;
/**
* Associate objects in HubSpot
*/
protected associateObjects(fromObjectType: string, fromObjectId: string, toObjectType: string, toObjectId: string, associationType?: string, contextUser?: UserInfo): Promise<void>;
/**
* Convert HubSpot timestamp to Date
*/
protected parseHubSpotDate(timestamp: string | number): Date;
/**
* Format date for HubSpot (ISO string or milliseconds)
*/
protected formatHubSpotDate(date: Date): string;
/**
* Map HubSpot object properties to a standard format
*/
protected mapHubSpotProperties(hubspotObject: any): any;
/**
* Get HubSpot association type IDs
* Based on HubSpot's default association type IDs
*/
protected getAssociationTypeId(fromType: string, toType: string): number;
}
//# sourceMappingURL=hubspot-base.action.d.ts.map