1
- import { ActionDefinition , RequestClient , PayloadValidationError , Features } from '@segment/actions-core'
1
+ import { ActionDefinition , RequestClient , PayloadValidationError } from '@segment/actions-core'
2
2
import type { Settings } from '../generated-types'
3
3
import type { Payload } from './generated-types'
4
4
import { SyncAudiences } from '../api'
@@ -112,19 +112,18 @@ const action: ActionDefinition<Settings, Payload> = {
112
112
required : false
113
113
}
114
114
} ,
115
- perform : async ( request , { settings, payload, stateContext, features } ) => {
116
- return processPayload ( request , settings , [ payload ] , stateContext , features )
115
+ perform : async ( request , { settings, payload, stateContext } ) => {
116
+ return processPayload ( request , settings , [ payload ] , stateContext )
117
117
} ,
118
- performBatch : async ( request , { settings, payload, stateContext, features } ) => {
119
- return processPayload ( request , settings , payload , stateContext , features )
118
+ performBatch : async ( request , { settings, payload, stateContext } ) => {
119
+ return processPayload ( request , settings , payload , stateContext )
120
120
}
121
121
}
122
122
async function processPayload (
123
123
request : RequestClient ,
124
124
settings : Settings ,
125
125
payloads : Payload [ ] ,
126
- stateContext ?: StateContext ,
127
- features ?: Features
126
+ stateContext ?: StateContext
128
127
) {
129
128
validate ( payloads )
130
129
const syncAudiencesApiClient : SyncAudiences = new SyncAudiences ( request , settings )
@@ -136,12 +135,8 @@ async function processPayload(
136
135
//setting cohort_name in cache context with ttl 0 so that it can keep the value as long as possible.
137
136
stateContext ?. setResponseContext ?.( `cohort_name` , cohort_name , { } )
138
137
}
139
- let addUsers : CohortChanges , removeUsers : CohortChanges
140
- if ( features ?. [ 'dedupe-braze-cohorts-v2' ] ) {
141
- ; ( { addUsers, removeUsers } = extractUsersV2 ( payloads ) )
142
- } else {
143
- ; ( { addUsers, removeUsers } = extractUsers ( payloads ) )
144
- }
138
+ const { addUsers, removeUsers } = extractUsers ( payloads )
139
+
145
140
const hasAddUsers = hasUsersToAddOrRemove ( addUsers )
146
141
const hasRemoveUsers = hasUsersToAddOrRemove ( removeUsers )
147
142
@@ -169,7 +164,7 @@ function validate(payloads: Payload[]): void {
169
164
}
170
165
}
171
166
172
- function extractUsersV2 ( payloads : Payload [ ] ) {
167
+ function extractUsers ( payloads : Payload [ ] ) {
173
168
// sort by time in descending order
174
169
// This is important because if a user is added and removed in the same batch,
175
170
// we want to ensure that the last action is taken.
@@ -215,30 +210,6 @@ function extractUsersV2(payloads: Payload[]) {
215
210
}
216
211
}
217
212
218
- function extractUsers ( payloads : Payload [ ] ) {
219
- const addUsers : CohortChanges = { user_ids : [ ] , device_ids : [ ] , aliases : [ ] }
220
- const removeUsers : CohortChanges = { user_ids : [ ] , device_ids : [ ] , aliases : [ ] , should_remove : true }
221
-
222
- payloads . forEach ( ( payload : Payload ) => {
223
- const { event_properties, external_id, device_id, user_alias, personas_audience_key } = payload
224
- const userEnteredOrRemoved : boolean = event_properties [ `${ personas_audience_key } ` ] as boolean
225
- const user = userEnteredOrRemoved ? addUsers : removeUsers
226
-
227
- if ( external_id ) {
228
- user ?. user_ids ?. push ( external_id )
229
- } else if ( device_id ) {
230
- user ?. device_ids ?. push ( device_id )
231
- } else if ( user_alias ) {
232
- user ?. aliases ?. push ( user_alias )
233
- }
234
- } )
235
-
236
- return {
237
- addUsers,
238
- removeUsers
239
- }
240
- }
241
-
242
213
function transformAliases ( aliases : Map < string , UserAlias > | undefined ) : UserAlias [ ] | undefined {
243
214
if ( ! aliases ) return undefined
244
215
return Array . from ( aliases . values ( ) ) . map ( ( alias ) => ( {
0 commit comments