From 907442e9a8c903a503c32ec52778db0e1c958fae Mon Sep 17 00:00:00 2001 From: Kelly Wallach Date: Tue, 22 Aug 2023 09:54:32 -0400 Subject: [PATCH] feat(analytics-connector): add support for setting opt out in identity store --- packages/analytics-connector/src/identityStore.ts | 7 +++++++ packages/analytics-connector/test/identityStore.test.ts | 2 ++ 2 files changed, 9 insertions(+) diff --git a/packages/analytics-connector/src/identityStore.ts b/packages/analytics-connector/src/identityStore.ts index b5fa0b09..1689594f 100644 --- a/packages/analytics-connector/src/identityStore.ts +++ b/packages/analytics-connector/src/identityStore.ts @@ -21,6 +21,7 @@ export type Identity = { userId?: string; deviceId?: string; userProperties?: Record; + optOut?: boolean; }; export type IdentityListener = (identity: Identity) => void; @@ -37,6 +38,7 @@ export interface IdentityEditor { setUserId(userId: string): IdentityEditor; setDeviceId(deviceId: string): IdentityEditor; setUserProperties(userProperties: Record): IdentityEditor; + setOptOut(optOut: boolean): IdentityEditor; updateUserProperties( actions: Record>, ): IdentityEditor; @@ -73,6 +75,11 @@ export class IdentityStoreImpl implements IdentityStore { return this; }, + setOptOut(optOut: boolean): IdentityEditor { + actingIdentity.optOut = optOut; + return this; + }, + updateUserProperties: function ( actions: Record>, ): IdentityEditor { diff --git a/packages/analytics-connector/test/identityStore.test.ts b/packages/analytics-connector/test/identityStore.test.ts index ba29d4f2..185aadd8 100644 --- a/packages/analytics-connector/test/identityStore.test.ts +++ b/packages/analytics-connector/test/identityStore.test.ts @@ -9,12 +9,14 @@ test('editIdentity, setUserId setDeviceId, success', async () => { .editIdentity() .setUserId('user_id') .setDeviceId('device_id') + .setOptOut(true) .commit(); const identity = identityStore.getIdentity(); expect(identity).toEqual({ userId: 'user_id', deviceId: 'device_id', userProperties: {}, + optOut: true, }); });