UNPKG

crisp-api

Version:

Crisp API wrapper for Node - official, maintained by Crisp

209 lines (208 loc) 6.71 kB
/************************************************************************** * IMPORTS ***************************************************************************/ import BaseResource from "./BaseResource"; import { WebsiteFilter } from "./WebsiteBase"; /************************************************************************** * TYPES ***************************************************************************/ export type WebsiteCampaignExcerpt = { campaign_id?: string; type?: string; format?: string; name?: string; subject?: string; tag?: string; ready?: boolean; dispatched?: boolean; running?: boolean; progress?: number; targets?: number; reached?: number; created_at: number; updated_at: number; dispatched_at?: number; }; export type WebsiteCampaignTemplateExcerpt = { template_id?: string; type?: string; name?: string; format?: string; created_at?: number; updated_at?: number; }; export type WebsiteCampaignTemplateNew = { template_id?: string; }; export interface WebsiteCampaignTemplateItem extends WebsiteCampaignTemplateExcerpt { content?: string; } export interface WebsiteCampaignItem extends WebsiteCampaignExcerpt { sender?: WebsiteCampaignItemSender; recipients?: WebsiteCampaignItemRecipients; flow?: WebsiteCampaignItemFlow; message?: string; options?: WebsiteCampaignItemOptions; statistics?: WebsiteCampaignItemStatistics; } export type WebsiteCampaignItemSender = { user_id?: string; }; export type WebsiteCampaignItemRecipients = { type?: string; segments?: string[]; people?: string[]; filter?: WebsiteFilter[]; }; export type WebsiteCampaignItemFlow = { launch_event?: string; assert_filter?: WebsiteFilter[]; assert_delay?: number; deliver_once?: boolean; deliver_delay?: number; }; export type WebsiteCampaignItemOptions = { deliver_to_chatbox?: boolean; deliver_to_email?: boolean; sender_name_website?: boolean; sender_email_reply?: boolean; tracking?: boolean; }; export type WebsiteCampaignItemStatistics = { opened?: number; clicked?: number; unsubscribed?: number; }; export type WebsiteCampaignRecipient = { people_id?: string; email?: string; person?: WebsiteCampaignRecipientPerson; subscribed?: boolean; }; export type WebsiteCampaignRecipientPerson = { nickname?: string; avatar?: string; }; export type WebsiteCampaignStatistic = { profile?: WebsiteCampaignStatisticProfile; data?: Record<string, unknown>; created_at?: number; updated_at?: number; }; export type WebsiteCampaignStatisticProfile = { people_id?: string; email?: string; person?: WebsiteCampaignStatisticProfilePerson; }; export type WebsiteCampaignStatisticProfilePerson = { nickname?: string; avatar?: string; geolocation?: WebsiteCampaignStatisticProfilePersonGeolocation; }; export type WebsiteCampaignStatisticProfilePersonGeolocation = { country?: string; region?: string; city?: string; coordinates?: WebsiteCampaignStatisticProfilePersonGeolocationCoordinates; }; export type WebsiteCampaignStatisticProfilePersonGeolocationCoordinates = { latitude?: number; longitude?: number; }; /************************************************************************** * CLASSES ***************************************************************************/ /** * Crisp WebsiteCampaign Resource */ declare class WebsiteCampaign extends BaseResource { /** * List Campaigns */ listCampaigns(websiteID: string, pageNumber?: number): Promise<WebsiteCampaignExcerpt[]>; /** * List Campaign Tags */ listCampaignTags(websiteID: string): Promise<string[]>; /** * List Campaign Templates */ listCampaignTemplates(websiteID: string, pageNumber?: number): Promise<WebsiteCampaignTemplateExcerpt[]>; /** * Create A New Campaign Template */ createNewCampaignTemplate(websiteID: string, templateFormat: string, templateName: string): Promise<WebsiteCampaignTemplateNew>; /** * Check If Campaign Template Exists */ checkCampaignTemplateExists(websiteID: string, templateID: string): Promise<any>; /** * Get A Campaign Template */ getCampaignTemplate(websiteID: string, templateID: string): Promise<WebsiteCampaignTemplateItem>; /** * Save A Campaign Template */ saveCampaignTemplate(websiteID: string, templateID: string, template: WebsiteCampaignTemplateItem): Promise<any>; /** * Update A Campaign Template */ updateCampaignTemplate(websiteID: string, templateID: string, template: WebsiteCampaignTemplateItem): Promise<any>; /** * Remove A Campaign Template */ removeCampaignTemplate(websiteID: string, templateID: string): Promise<any>; /** * Create A New Campaign */ createNewCampaign(websiteID: string, campaignType: string, campaignName: string): Promise<any>; /** * Check If Campaign Exists */ checkCampaignExists(websiteID: string, campaignID: string): Promise<any>; /** * Get A Campaign */ getCampaign(websiteID: string, campaignID: string): Promise<WebsiteCampaignItem>; /** * Save A Campaign */ saveCampaign(websiteID: string, campaignID: string, campaign: WebsiteCampaignItem): Promise<any>; /** * Update A Campaign */ updateCampaign(websiteID: string, campaignID: string, campaign: WebsiteCampaignItem): Promise<any>; /** * Remove A Campaign */ removeCampaign(websiteID: string, campaignID: string): Promise<any>; /** * Dispatch A Campaign * @return {Promise} */ dispatchCampaign(websiteID: string, campaignID: string): Promise<any>; /** * Resume A Campaign */ resumeCampaign(websiteID: string, campaignID: string): Promise<any>; /** * Pause A Campaign */ pauseCampaign(websiteID: string, campaignID: string): Promise<any>; /** * Test A Campaign */ testCampaign(websiteID: string, campaignID: string): Promise<any>; /** * List Campaign Recipients */ listCampaignRecipients(websiteID: string, campaignID: string, pageNumber?: number): Promise<WebsiteCampaignRecipient[]>; /** * List Campaign Statistics */ listCampaignStatistics(websiteID: string, campaignID: string, action: string, pageNumber?: number): Promise<WebsiteCampaignStatistic[]>; } /************************************************************************** * EXPORTS ***************************************************************************/ export default WebsiteCampaign;