UNPKG

omnisend-node-sdk

Version:

🔹 Typesafe Omnisend API SDK for Node.js

197 lines (196 loc) • 6.7 kB
import type { CampaignFull, CampaignPartial, PagingLink } from "../data-contracts"; import type { HttpClient, RequestParams } from "../http-client"; export declare class Campaigns<SecurityDataType = unknown, SafeMode extends true | false = false> { http: HttpClient<SecurityDataType, SafeMode>; constructor(http: HttpClient<SecurityDataType, SafeMode>); /** * No description * * @tags Campaigns * @name GetCampaignsCampaignId * @summary Get campaign's info * @request GET:/campaigns/{campaignID} * @secure */ getCampaignsCampaignId: (campaignId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: CampaignFull; } : CampaignFull>; /** * @description **Curl example:** ```php curl -X DELETE "https://api.omnisend.com/v3/campaigns/59099010597ed74f6635fb14" ``` **Note**: only `sent` and `draft` campaigns cant be deleted. * * @tags Campaigns * @name DeleteCampaignsCampaignId * @summary Delete campaign * @request DELETE:/campaigns/{campaignID} * @secure */ deleteCampaignsCampaignId: (campaignId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: void; } : void>; /** * No description * * @tags Campaigns * @name GetCampaigns * @summary List campaigns * @request GET:/campaigns * @secure */ getCampaigns: (query?: { sort?: string; /** See method description for available statuses. */ status?: "draft" | "paused" | "scheduled" | "inProgress" | "sent"; /** See method description for available types. */ type?: string; /** * Number of results to skip. Default is 0. * @min 0 * @default 0 */ offset?: number; /** * Number of results to fetch. Default is 100, max 250. * @min 1 * @max 250 * @default 100 */ limit?: number; }, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { campaigns?: CampaignPartial[] | undefined; paging?: PagingLink | undefined; }; } : { campaigns?: CampaignPartial[] | undefined; paging?: PagingLink | undefined; }>; /** * No description * * @tags Campaigns * @name GetCampaignsCampaignIdContactsContactId * @summary Get campaign's contact * @request GET:/campaigns/{campaignID}/contacts/{contactID} * @secure */ getCampaignsCampaignIdContactsContactId: (campaignId: string, contactId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { /** @format email */ email?: string | undefined; contactID?: string | undefined; sent?: boolean | undefined; opened?: boolean | undefined; clicked?: boolean | undefined; bounced?: boolean | undefined; complained?: boolean | undefined; unsubscribed?: boolean | undefined; }; } : { /** @format email */ email?: string | undefined; contactID?: string | undefined; sent?: boolean | undefined; opened?: boolean | undefined; clicked?: boolean | undefined; bounced?: boolean | undefined; complained?: boolean | undefined; unsubscribed?: boolean | undefined; }>; /** * @description There is ability to get campaign contacts which `opened` email, `clicked` on links in email, `unsubsribed`, `complained` or `bounced`. Just pass query parameter with value **true**. **Example**: https://api.omnisend.com/v3/campaigns/59099010597ed74f6635fb14/contacts?**clicked=true** * * @tags Campaigns * @name GetCampaignsCampaignIdContacts * @summary List campaign contacts * @request GET:/campaigns/{campaignID}/contacts * @secure */ getCampaignsCampaignIdContacts: (campaignId: string, query?: { clicked?: true | false; opened?: true | false; unsubscribed?: true | false; bounced?: true | false; complained?: true | false; /** * Number of results to skip. Default is 0. * @min 0 * @default 0 */ offset?: number; /** * Number of results to fetch. Default is 100, max 250. * @min 1 * @max 250 * @default 100 */ limit?: number; }, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { contacts?: { /** @format email */ email?: string | undefined; contactID?: string | undefined; sent?: boolean | undefined; opened?: boolean | undefined; clicked?: boolean | undefined; bounced?: boolean | undefined; complained?: boolean | undefined; unsubscribed?: boolean | undefined; }[] | undefined; paging?: PagingLink | undefined; }; } : { contacts?: { /** @format email */ email?: string | undefined; contactID?: string | undefined; sent?: boolean | undefined; opened?: boolean | undefined; clicked?: boolean | undefined; bounced?: boolean | undefined; complained?: boolean | undefined; unsubscribed?: boolean | undefined; }[] | undefined; paging?: PagingLink | undefined; }>; /** * @description Start sending campaign emails - if campaign is in draft or scheduled mode. * * @tags Campaigns * @name PostCampaignsCampaignIdActionsStart * @summary Start sending campaign emails * @request POST:/campaigns/{campaignID}/actions/start * @secure */ postCampaignsCampaignIdActionsStart: (campaignId: string, params?: RequestParams) => Promise<SafeMode extends true ? { success: false; error?: string | undefined; } | { success: true; data: { campaignID: string; }; } : { campaignID: string; }>; }