Skip to content

Commit 8c6ccd5

Browse files
committed
Merge remote-tracking branch 'origin/main' into int-obc-obs
2 parents 438c3c3 + 1512cfc commit 8c6ccd5

File tree

104 files changed

+5874
-213
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+5874
-213
lines changed

packages/actions-shared/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@segment/actions-shared",
33
"description": "Shared destination action methods and definitions.",
4-
"version": "1.148.0",
4+
"version": "1.149.0",
55
"repository": {
66
"type": "git",
77
"url": "https://github.com/segmentio/action-destinations",

packages/destination-actions/src/destinations/dotdigital/api/dd-api.ts renamed to packages/actions-shared/src/dotdigital/api/dd-api.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { RequestClient } from '@segment/actions-core'
2-
import type { Settings } from '../generated-types'
32

43
abstract class DDApi {
54
private readonly apiUrl: string
65
private readonly request: RequestClient
76

8-
protected constructor(settings: Settings, request: RequestClient) {
9-
this.apiUrl = settings.api_host
7+
protected constructor(api_host: string, request: RequestClient) {
8+
this.apiUrl = api_host
109
this.request = request
1110
}
1211

packages/destination-actions/src/destinations/dotdigital/api/index.ts renamed to packages/actions-shared/src/dotdigital/api/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ export { default as DDDataFieldsApi } from './resources/dd-datafields-api'
55
export { default as DDCpaasApi } from './resources/dd-cpaas-api'
66
export { default as DDSmsApi } from './resources/dd-sms-api'
77
export { default as DDCampaignApi } from './resources/dd-campaign-api'
8-
export { default as DDEmailApi } from './resources/dd-email-api'
8+
export { default as DDEmailApi } from './resources/dd-email-api'
9+
export type { default as DDApi } from './dd-api'

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-campaign-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-campaign-api.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { DynamicFieldResponse, ModifiedResponse, RequestClient } from '@segment/actions-core'
2-
import type { Settings } from '../../generated-types'
32
import DDApi from '../dd-api'
43
import { Campaign, sendCampaignPayload } from '../types'
54

@@ -8,8 +7,8 @@ import { Campaign, sendCampaignPayload } from '../types'
87
* Extends the base Dotdigital API class.
98
*/
109
class DDCampaignApi extends DDApi {
11-
constructor(settings: Settings, client: RequestClient) {
12-
super(settings, client)
10+
constructor(api_host: string, client: RequestClient) {
11+
super(api_host, client)
1312
}
1413

1514
/**

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-contact-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-contact-api.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import { ModifiedResponse, RequestClient } from '@segment/actions-core'
2-
import type { Settings } from '../../generated-types'
32
import DDApi from '../dd-api'
43
import { Contact, ChannelIdentifier, Identifiers, ChannelProperties, UpsertContactJSON, DataFields } from '../types'
5-
import type { Payload } from '../../addContactToList/generated-types'
64

75
class DDContactApi extends DDApi {
8-
constructor(settings: Settings, client: RequestClient) {
9-
super(settings, client)
6+
constructor(api_host: string, client: RequestClient) {
7+
super(api_host, client)
108
}
119

1210
/**
@@ -41,7 +39,13 @@ class DDContactApi extends DDApi {
4139
* @param {Payload} payload - The event payload.
4240
* @returns {Promise<Contact>} A promise resolving to the contact data.
4341
*/
44-
public async upsertContact(payload: Payload): Promise<Contact> {
42+
public async upsertContact(payload: {
43+
channelIdentifier: string
44+
emailIdentifier?: string
45+
mobileNumberIdentifier?: string
46+
listId: number
47+
dataFields?: { [k: string]: unknown }
48+
}): Promise<Contact> {
4549
const { channelIdentifier, emailIdentifier, mobileNumberIdentifier, listId, dataFields } = payload
4650

4751
const idValue = channelIdentifier === 'email' ? emailIdentifier : mobileNumberIdentifier

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-cpaas-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-cpaas-api.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import { ModifiedResponse, RequestClient } from '@segment/actions-core'
22
import DDApi from '../dd-api'
33
import { CpaasMessageBody } from '../types'
4-
import type { Settings } from '../../generated-types'
54

65
class DDCpaasApi extends DDApi {
7-
constructor(settings: Settings, client: RequestClient) {
8-
super(settings, client)
6+
constructor(api_host: string, client: RequestClient) {
7+
super(api_host, client)
98
}
109

1110
async sendTransactionalSms(body: CpaasMessageBody): Promise<unknown> {

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-datafields-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-datafields-api.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import { RequestClient, DynamicFieldResponse, ModifiedResponse, PayloadValidationError } from '@segment/actions-core'
2-
import type { Settings } from '../../generated-types'
32
import DDApi from '../dd-api'
43
import { DataField } from '../types'
5-
import type { Payload } from '../../addContactToList/generated-types'
64
import type { FieldTypeName } from '@segment/actions-core/destination-kittypes'
75

86
class DDDataFieldsApi extends DDApi {
9-
constructor(settings: Settings, client: RequestClient) {
10-
super(settings, client)
7+
constructor(api_host: string, client: RequestClient) {
8+
super(api_host, client)
119
}
1210

1311
/**
@@ -51,15 +49,17 @@ class DDDataFieldsApi extends DDApi {
5149
return (type === 'number' || type === 'string') && !isNaN(Number(value))
5250
}
5351

54-
async validateDataFields(payload: Payload) {
55-
if (!payload.dataFields) {
52+
async validateDataFields(payload: { dataFields?: { [k: string]: unknown } }) {
53+
const dataFields = payload.dataFields
54+
55+
if (!dataFields) {
5656
return
5757
}
5858

5959
const response: ModifiedResponse<DataField[]> = await this.get<DataField[]>('/v2/data-fields/')
6060
const ddDataFields = response.data
6161

62-
for (const [key, value] of Object.entries(payload.dataFields)) {
62+
for (const [key, value] of Object.entries(dataFields)) {
6363
let validatedValue = value
6464
const ddDataField = ddDataFields.find((obj) => obj.name === key)
6565

@@ -104,9 +104,9 @@ class DDDataFieldsApi extends DDApi {
104104
break
105105
}
106106

107-
payload.dataFields[key] = validatedValue
107+
dataFields[key] = validatedValue
108108
}
109-
return payload.dataFields
109+
return dataFields
110110
}
111111
}
112112

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-email-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-email-api.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,30 @@
11
import { RequestClient } from '@segment/actions-core'
2-
import type { Settings } from '../../generated-types'
32
import DDApi from '../dd-api'
43
import { checkAndCleanEmail, cleanEmails } from '../../helpers/functions'
5-
import type { Payload } from '../../sendTransactionalEmail/generated-types'
64

75
/**
86
* Class representing the Dotdigital Email API.
97
* Extends the base Dotdigital API class.
108
*/
119
class DDEmailApi extends DDApi {
12-
constructor(settings: Settings, client: RequestClient) {
13-
super(settings, client)
10+
constructor(api_host: string, client: RequestClient) {
11+
super(api_host, client)
1412
}
1513

1614
/**
1715
* Sends a transactional email.
1816
* @param {object} payload - The event payload.
1917
* @returns A promise that resolves to json.
2018
*/
21-
public async sendTransactionalEmail(payload: Payload) {
19+
public async sendTransactionalEmail(payload: {
20+
toAddresses: string
21+
ccAddresses?: string
22+
bccAddresses?: string
23+
subject: string
24+
fromAddress: string
25+
htmlContent: string
26+
plainTextContent?: string
27+
}) {
2228
const toAddresses = cleanEmails(payload.toAddresses)
2329
const ccAddresses = cleanEmails(payload.ccAddresses)
2430
const bccAddresses = cleanEmails(payload.bccAddresses)

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-enrolment-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-enrolment-api.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { ModifiedResponse, RequestClient, DynamicFieldResponse } from '@segment/actions-core'
2-
import type { Settings } from '../../generated-types'
32
import DDApi from '../dd-api'
43
import { Contact, Program, ProgramStatus, ProgramEnrolment, ProgramEnrolementJSON } from '../types'
54

@@ -8,8 +7,8 @@ import { Contact, Program, ProgramStatus, ProgramEnrolment, ProgramEnrolementJSO
87
* Extends the base Dotdigital API class.
98
*/
109
class DDEnrolmentApi extends DDApi {
11-
constructor(settings: Settings, client: RequestClient) {
12-
super(settings, client)
10+
constructor(api_host: string, client: RequestClient) {
11+
super(api_host, client)
1312
}
1413

1514
/**

packages/destination-actions/src/destinations/dotdigital/api/resources/dd-lists-api.ts renamed to packages/actions-shared/src/dotdigital/api/resources/dd-lists-api.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import { ModifiedResponse, RequestClient, DynamicFieldResponse } from '@segment/actions-core'
2-
import type { Settings } from '../../generated-types'
32
import DDApi from '../dd-api'
43
import { List } from '../types'
54

65
class DDListsApi extends DDApi {
7-
constructor(settings: Settings, request: RequestClient) {
8-
super(settings, request)
6+
constructor(api_host: string, request: RequestClient) {
7+
super(api_host, request)
98
}
109

1110
/**

0 commit comments

Comments
 (0)