PerspectPerspectDocs
Go to Admin
View as Markdown

perspectapi-ts-sdk

Classes

  • NewsletterV2Client

Class: NewsletterV2Client

Extends

  • BaseV2Client

Constructors

Constructor

new NewsletterV2Client(http, basePath, cache?): NewsletterV2Client

Parameters

http

HttpClient

basePath

string

cache?

CacheManager

Returns

NewsletterV2Client

Inherited from

BaseV2Client.constructor

Properties

basePath

protected basePath: string

Inherited from

BaseV2Client.basePath

cache?

protected optional cache?: CacheManager

Inherited from

BaseV2Client.cache

http

protected http: HttpClient

Inherited from

BaseV2Client.http

Methods

buildPath()

protected buildPath(endpoint): string

Parameters

endpoint

string

Returns

string

Inherited from

BaseV2Client.buildPath

confirm()

confirm(siteName, token): Promise<V2NewsletterSubscription>

Parameters

siteName

string

token

string

Returns

Promise<V2NewsletterSubscription>

createList()

createList(siteName, data): Promise<V2NewsletterList>

Parameters

siteName

string

data

V2NewsletterListCreateParams

Returns

Promise<V2NewsletterList>

deleteList()

deleteList(siteName, id): Promise<V2Deleted>

Parameters

siteName

string

id

string

Returns

Promise<V2Deleted>

deleteOne()

protected deleteOne(path): Promise<V2Deleted>

DELETE a resource.

Parameters

path

string

Returns

Promise<V2Deleted>

Inherited from

BaseV2Client.deleteOne

getCampaign()

getCampaign(siteName, idOrSlug, cachePolicy?): Promise<V2NewsletterCampaign>

Parameters

siteName

string

idOrSlug

string

cachePolicy?

CachePolicy

Returns

Promise<V2NewsletterCampaign>

getList()

protected getList<T>(path, params?, cachePolicy?): Promise<V2List<T>>

GET a list of resources with cursor pagination, with optional caching.

Type Parameters

T

T

Parameters

path

string

params?

object

cachePolicy?

CachePolicy

Returns

Promise<V2List<T>>

Inherited from

BaseV2Client.getList

getOne()

protected getOne<T>(path, params?, cachePolicy?): Promise<T>

GET a single resource, with optional caching.

Type Parameters

T

T

Parameters

path

string

params?

object

cachePolicy?

CachePolicy

Returns

Promise<T>

Inherited from

BaseV2Client.getOne

getSubscription()

getSubscription(siteName, id, cachePolicy?): Promise<V2NewsletterSubscription>

Parameters

siteName

string

id

string

cachePolicy?

CachePolicy

Returns

Promise<V2NewsletterSubscription>

importSubscriptions()

importSubscriptions(siteName, data): Promise<V2NewsletterImportResult>

Bulk import subscriptions. Each row is upserted via the same sync path; refreshListCounts is deferred until after all rows are processed on the server.

Parameters

siteName

string

data

V2NewsletterImportRequest

Returns

Promise<V2NewsletterImportResult>

invalidateCache()

protected invalidateCache(options): Promise<void>

Invalidate cache entries by keys or tags.

Parameters

options

CacheInvalidateOptions

Returns

Promise<void>

Inherited from

BaseV2Client.invalidateCache

listAutoPaginate()

protected listAutoPaginate<T>(path, params?): AsyncGenerator<T, void, unknown>

Auto-paginating async generator. Yields every item across all pages.

Usage: for await (const item of client.listAutoPaginate(path, params)) { ... }

Type Parameters

T

T extends object

Parameters

path

string

params?

object

Returns

AsyncGenerator<T, void, unknown>

Inherited from

BaseV2Client.listAutoPaginate

listCampaigns()

listCampaigns(siteName, params?, cachePolicy?): Promise<V2List<V2NewsletterCampaign>>

Parameters

siteName

string

params?

V2PaginationParams & object

cachePolicy?

CachePolicy

Returns

Promise<V2List<V2NewsletterCampaign>>

listLists()

listLists(siteName, cachePolicy?): Promise<V2List<V2NewsletterList>>

Parameters

siteName

string

cachePolicy?

CachePolicy

Returns

Promise<V2List<V2NewsletterList>>

listSubscriptions()

listSubscriptions(siteName, params?, cachePolicy?): Promise<V2List<V2NewsletterSubscription>>

Parameters

siteName

string

params?

V2PaginationParams & object

cachePolicy?

CachePolicy

Returns

Promise<V2List<V2NewsletterSubscription>>

patchOne()

protected patchOne<T>(path, body?): Promise<T>

PATCH to update a resource.

Type Parameters

T

T

Parameters

path

string

body?

unknown

Returns

Promise<T>

Inherited from

BaseV2Client.patchOne

post()

protected post<T>(path, body?): Promise<T>

POST to create a resource.

Type Parameters

T

T

Parameters

path

string

body?

unknown

Returns

Promise<T>

Inherited from

BaseV2Client.post

putOne()

protected putOne<T>(path, body?): Promise<T>

PUT to upsert a resource.

Type Parameters

T

T

Parameters

path

string

body?

unknown

Returns

Promise<T>

Inherited from

BaseV2Client.putOne

sitePath()

protected sitePath(siteName, resource, suffix?): string

Parameters

siteName

string

resource

string

suffix?

string = ''

Returns

string

Inherited from

BaseV2Client.sitePath

subscribe()

subscribe(siteName, data): Promise<V2NewsletterSubscription>

Parameters

siteName

string

data
email

string

frequency?

"instant" | "daily" | "weekly" | "monthly"

language?

string

list_ids?

string[]

metadata?

Record<string, unknown>

name?

string

source?

string

source_url?

string

topics?

string[]

Returns

Promise<V2NewsletterSubscription>

syncSubscription()

syncSubscription(siteName, data): Promise<V2NewsletterSyncResult>

Upsert a subscription by email and (optionally) replace its list memberships. Returns a newsletter_sync_result envelope with the outcome (created / updated / resubscribed / already-unsubscribed).

Parameters

siteName

string

data

V2NewsletterSyncInput

Returns

Promise<V2NewsletterSyncResult>

trackClick()

trackClick(siteName, token, url): Promise<V2NewsletterTrackingResponse>

Parameters

siteName

string

token

string

url

string

Returns

Promise<V2NewsletterTrackingResponse>

trackOpen()

trackOpen(siteName, token): Promise<V2NewsletterTrackingResponse>

Parameters

siteName

string

token

string

Returns

Promise<V2NewsletterTrackingResponse>

unsubscribe()

unsubscribe(siteName, data): Promise<V2NewsletterSubscription>

Parameters

siteName

string

data
email?

string

reason?

string

token?

string

Returns

Promise<V2NewsletterSubscription>

updateList()

updateList(siteName, id, data): Promise<V2NewsletterList>

Parameters

siteName

string

id

string

data

V2NewsletterListUpdateParams

Returns

Promise<V2NewsletterList>

updateSubscriptionListMembership()

updateSubscriptionListMembership(siteName, subscriptionId, data): Promise<V2NewsletterSubscription>

Add/remove/replace the list memberships for an existing subscription. Returns the refreshed subscription record.

Parameters

siteName

string

subscriptionId

string

data

V2NewsletterSubscriptionListMembershipUpdate

Returns

Promise<V2NewsletterSubscription>