Skip to content

Commit 1f24273

Browse files
Copilotabhandage
andcommitted
Add 5 more destinations to centralized versioning-info.ts
Added: - customerio (v2) - utils for Track API - salesforce-marketing-cloud (v1, v2) - Hub, Auth, and Data API versions - responsys (v1.3) - Async API version - rokt-audiences (v3) - Data API - insider-audiences (v1) - Unification API Co-authored-by: abhandage <174417010+abhandage@users.noreply.github.com>
1 parent 1cb513b commit 1f24273

File tree

6 files changed

+62
-16
lines changed

6 files changed

+62
-16
lines changed

packages/destination-actions/src/destinations/customerio/utils.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import dayjs from '../../lib/dayjs'
22
import isPlainObject from 'lodash/isPlainObject'
33
import { fullFormats } from 'ajv-formats/dist/formats'
4+
import { CUSTOMERIO_TRACK_API_VERSION } from '../versioning-info'
45

56
const isEmail = (value: string): boolean => {
67
return (fullFormats.email as RegExp).test(value)
@@ -203,7 +204,7 @@ export const sendBatch = <Payload extends BasePayload>(request: Function, option
203204
const [{ settings }] = options
204205
const batch = options.map((opts) => buildPayload(opts))
205206

206-
return request(`${trackApiEndpoint(settings)}/api/v2/batch`, {
207+
return request(`${trackApiEndpoint(settings)}/api/${CUSTOMERIO_TRACK_API_VERSION}/batch`, {
207208
method: 'post',
208209
json: {
209210
batch
@@ -213,7 +214,7 @@ export const sendBatch = <Payload extends BasePayload>(request: Function, option
213214

214215
export const sendSingle = <Payload extends BasePayload>(request: Function, options: RequestPayload<Payload>) => {
215216
const json = buildPayload(options)
216-
return request(`${trackApiEndpoint(options.settings)}/api/v2/entity`, {
217+
return request(`${trackApiEndpoint(options.settings)}/api/${CUSTOMERIO_TRACK_API_VERSION}/entity`, {
217218
method: 'post',
218219
json
219220
})

packages/destination-actions/src/destinations/insider-audiences/insider-helpers.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { ModifiedResponse, RequestOptions } from '@segment/actions-core'
22
import { Payload } from './insiderAudiences/generated-types'
3+
import { INSIDER_UNIFICATION_API_VERSION } from '../versioning-info'
34

45
export const API_BASE = 'https://unification.useinsider.com/api/'
5-
export const UPSERT_ENDPOINT = 'user/v1/upsert'
6-
export const DELETE_ATTRIBUTE_ENDPOINT = 'user/v1/attribute/delete'
6+
export const UPSERT_ENDPOINT = `user/${INSIDER_UNIFICATION_API_VERSION}/upsert`
7+
export const DELETE_ATTRIBUTE_ENDPOINT = `user/${INSIDER_UNIFICATION_API_VERSION}/attribute/delete`
78
const AUDIENCE_TYPE = 'audience'
89
const IDENTIFY = 'identify'
910
const TRACK = 'track'

packages/destination-actions/src/destinations/responsys/utils.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import {
1919
ModifiedResponse,
2020
createRequestClient
2121
} from '@segment/actions-core'
22+
import { RESPONSYS_ASYNC_API_VERSION } from '../versioning-info'
23+
} from '@segment/actions-core'
2224
import type { Settings } from './generated-types'
2325

2426
// Rate limits per endpoint.
@@ -148,7 +150,7 @@ export const sendCustomTraits = async (
148150
matchColumnName1: settings.matchColumnName1,
149151
matchColumnName2: settings.matchColumnName2 || ''
150152
}
151-
const path = `/rest/asyncApi/v1.3/lists/${settings.profileListName}/listExtensions/${settings.profileExtensionTable}/members`
153+
const path = `/rest/asyncApi/${RESPONSYS_ASYNC_API_VERSION}/lists/${settings.profileListName}/listExtensions/${settings.profileExtensionTable}/members`
152154

153155
const endpoint = new URL(path, settings.baseUrl)
154156

@@ -232,7 +234,7 @@ export const upsertListMembers = async (
232234
mergeRule
233235
}
234236

235-
const path = `/rest/${usingAsyncApi ? 'asyncApi' : 'api'}/v1.3/lists/${settings.profileListName}/members`
237+
const path = `/rest/${usingAsyncApi ? 'asyncApi' : 'api'}/${RESPONSYS_ASYNC_API_VERSION}/lists/${settings.profileListName}/members`
236238
const endpoint = new URL(path, settings.baseUrl)
237239

238240
const headers = {
@@ -321,7 +323,7 @@ export const getAsyncResponse = async (
321323
}
322324
}
323325

324-
const operationResponseEndpoint = new URL(`/rest/asyncApi/v1.3/requests/${requestId}`, settings.baseUrl)
326+
const operationResponseEndpoint = new URL(`/rest/asyncApi/${RESPONSYS_ASYNC_API_VERSION}/requests/${requestId}`, settings.baseUrl)
325327
const request = createRequestClient(headers)
326328
// Take a break.
327329
await new Promise((resolve) => setTimeout(resolve, getAsyncResponseWaitInterval))

packages/destination-actions/src/destinations/rokt-audiences/constants.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import { ROKT_API_VERSION } from '../versioning-info'
2+
13
export const CONSTANTS = {
24
// rokt
35
INCLUDE: 'include',
46
EXCLUDE: 'exclude',
5-
ROKT_API_BASE_URL: 'https://data.rokt.com/v3',
7+
ROKT_API_BASE_URL: `https://data.rokt.com/${ROKT_API_VERSION}`,
68
ROKT_API_CUSTOM_AUDIENCE_ENDPOINT: '/import/suppression',
79
ROKT_API_AUTH_ENDPOINT: '/auth-check',
810

packages/destination-actions/src/destinations/salesforce-marketing-cloud/sfmc-operations.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ import { ErrorResponse, ErrorData } from './types'
1616
import { OnMappingSaveInputs } from './dataExtensionV2/generated-types'
1717
import { Settings } from './generated-types'
1818
import { xml2js } from 'xml-js'
19+
import {
20+
SALESFORCE_MARKETING_CLOUD_HUB_API_VERSION,
21+
SALESFORCE_MARKETING_CLOUD_AUTH_API_VERSION,
22+
SALESFORCE_MARKETING_CLOUD_DATA_API_VERSION
23+
} from '../versioning-info'
1924

2025
function generateRows(payloads: payload_dataExtension[] | payload_contactDataExtension[]): Record<string, any>[] {
2126
const rows: Record<string, any>[] = []
@@ -52,12 +57,12 @@ export function upsertRows(
5257
}
5358
const rows = generateRows(payloads)
5459
if (key) {
55-
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/key:${key}/rowset`, {
60+
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/${SALESFORCE_MARKETING_CLOUD_HUB_API_VERSION}/dataevents/key:${key}/rowset`, {
5661
method: 'POST',
5762
json: rows
5863
})
5964
} else {
60-
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${id}/rowset`, {
65+
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/${SALESFORCE_MARKETING_CLOUD_HUB_API_VERSION}/dataevents/${id}/rowset`, {
6166
method: 'POST',
6267
json: rows
6368
})
@@ -79,7 +84,7 @@ export function upsertRowsV2(
7984
}
8085

8186
const rows = generateRows(payloads)
82-
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/v1/dataevents/${dataExtensionId}/rowset`, {
87+
return request(`https://${subdomain}.rest.marketingcloudapis.com/hub/${SALESFORCE_MARKETING_CLOUD_HUB_API_VERSION}/dataevents/${dataExtensionId}/rowset`, {
8388
method: 'POST',
8489
json: rows
8590
})
@@ -239,7 +244,7 @@ const getAccessToken = async (
239244
request: RequestClient,
240245
settings: Settings
241246
): Promise<{ accessToken: string; soapInstanceUrl: string }> => {
242-
const baseUrl = `https://${settings.subdomain}.auth.marketingcloudapis.com/v2/token`
247+
const baseUrl = `https://${settings.subdomain}.auth.marketingcloudapis.com/${SALESFORCE_MARKETING_CLOUD_AUTH_API_VERSION}/token`
243248
const res = await request<RefreshTokenResponse>(`${baseUrl}`, {
244249
method: 'POST',
245250
body: new URLSearchParams({
@@ -288,7 +293,7 @@ const dataExtensionRequest = async (
288293

289294
try {
290295
const response = await request<DataExtensionCreationResponse>(
291-
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects`,
296+
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/${SALESFORCE_MARKETING_CLOUD_DATA_API_VERSION}/customobjects`,
292297
{
293298
method: 'POST',
294299
json: {
@@ -365,7 +370,7 @@ const selectDataExtensionRequest = async (
365370

366371
try {
367372
const response = await request<DataExtensionSelectionResponse>(
368-
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects/${hookInputs.dataExtensionId}`,
373+
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/${SALESFORCE_MARKETING_CLOUD_DATA_API_VERSION}/customobjects/${hookInputs.dataExtensionId}`,
369374
{
370375
method: 'GET',
371376
headers: {
@@ -462,7 +467,7 @@ const getDataExtensionsRequest = async (
462467
): Promise<{ results?: DynamicFieldItem[]; error?: DynamicFieldError }> => {
463468
try {
464469
const response = await request<DataExtensionSearchResponse>(
465-
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects`,
470+
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/${SALESFORCE_MARKETING_CLOUD_DATA_API_VERSION}/customobjects`,
466471
{
467472
method: 'get',
468473
searchParams: {
@@ -550,7 +555,7 @@ const getDataExtensionFieldsRequest = async (
550555
): Promise<{ results?: DynamicFieldItem[]; error?: DynamicFieldError }> => {
551556
try {
552557
const response = await request<DataExtensionFieldsResponse>(
553-
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/v1/customobjects/${dataExtensionId}/fields`,
558+
`https://${auth.subdomain}.rest.marketingcloudapis.com/data/${SALESFORCE_MARKETING_CLOUD_DATA_API_VERSION}/customobjects/${dataExtensionId}/fields`,
554559
{
555560
method: 'GET',
556561
headers: {

packages/destination-actions/src/destinations/versioning-info.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,3 +403,38 @@ export const OUTFUNNEL_API_VERSION = 'v1'
403403
* Talon.One Segment integration API version
404404
*/
405405
export const TALON_ONE_API_VERSION = 'v2'
406+
407+
/**
408+
* Customer.io Track API version
409+
*/
410+
export const CUSTOMERIO_TRACK_API_VERSION = 'v2'
411+
412+
/**
413+
* Salesforce Marketing Cloud Hub API version
414+
*/
415+
export const SALESFORCE_MARKETING_CLOUD_HUB_API_VERSION = 'v1'
416+
417+
/**
418+
* Salesforce Marketing Cloud Auth API version
419+
*/
420+
export const SALESFORCE_MARKETING_CLOUD_AUTH_API_VERSION = 'v2'
421+
422+
/**
423+
* Salesforce Marketing Cloud Data API version
424+
*/
425+
export const SALESFORCE_MARKETING_CLOUD_DATA_API_VERSION = 'v1'
426+
427+
/**
428+
* Responsys Async API version
429+
*/
430+
export const RESPONSYS_ASYNC_API_VERSION = 'v1.3'
431+
432+
/**
433+
* Rokt Data API version
434+
*/
435+
export const ROKT_API_VERSION = 'v3'
436+
437+
/**
438+
* Insider Unification API version
439+
*/
440+
export const INSIDER_UNIFICATION_API_VERSION = 'v1'

0 commit comments

Comments
 (0)