@segment/action-destinations 3.233.0 → 3.234.0-staging.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/destinations/algolia-insights/algolia-insight-api.d.ts +2 -4
  2. package/dist/destinations/algolia-insights/conversionEvents/generated-types.d.ts +2 -0
  3. package/dist/destinations/algolia-insights/conversionEvents/index.js +21 -2
  4. package/dist/destinations/algolia-insights/conversionEvents/index.js.map +1 -1
  5. package/dist/destinations/algolia-insights/productAddedEvents/generated-types.d.ts +2 -0
  6. package/dist/destinations/algolia-insights/productAddedEvents/index.js +21 -2
  7. package/dist/destinations/algolia-insights/productAddedEvents/index.js.map +1 -1
  8. package/dist/destinations/algolia-insights/productClickedEvents/generated-types.d.ts +2 -0
  9. package/dist/destinations/algolia-insights/productClickedEvents/index.js +21 -2
  10. package/dist/destinations/algolia-insights/productClickedEvents/index.js.map +1 -1
  11. package/dist/destinations/algolia-insights/productListFilteredEvents/generated-types.d.ts +2 -0
  12. package/dist/destinations/algolia-insights/productListFilteredEvents/index.js +21 -2
  13. package/dist/destinations/algolia-insights/productListFilteredEvents/index.js.map +1 -1
  14. package/dist/destinations/algolia-insights/productViewedEvents/generated-types.d.ts +2 -0
  15. package/dist/destinations/algolia-insights/productViewedEvents/index.js +21 -2
  16. package/dist/destinations/algolia-insights/productViewedEvents/index.js.map +1 -1
  17. package/dist/destinations/amazon-ads/generated-types.d.ts +3 -0
  18. package/dist/destinations/amazon-ads/generated-types.js +3 -0
  19. package/dist/destinations/amazon-ads/generated-types.js.map +1 -0
  20. package/dist/destinations/amazon-ads/index.d.ts +4 -0
  21. package/dist/destinations/amazon-ads/index.js +87 -0
  22. package/dist/destinations/amazon-ads/index.js.map +1 -0
  23. package/dist/destinations/amazon-ads/syncAudiences/generated-types.d.ts +2 -0
  24. package/dist/destinations/amazon-ads/syncAudiences/generated-types.js +3 -0
  25. package/dist/destinations/amazon-ads/syncAudiences/generated-types.js.map +1 -0
  26. package/dist/destinations/amazon-ads/syncAudiences/index.d.ts +5 -0
  27. package/dist/destinations/amazon-ads/syncAudiences/index.js +15 -0
  28. package/dist/destinations/amazon-ads/syncAudiences/index.js.map +1 -0
  29. package/dist/destinations/amazon-ads/types.d.ts +22 -0
  30. package/dist/destinations/amazon-ads/types.js +11 -0
  31. package/dist/destinations/amazon-ads/types.js.map +1 -0
  32. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.d.ts +1 -0
  33. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.js +184 -0
  34. package/dist/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.js.map +1 -0
  35. package/dist/destinations/display-video-360/addToAudience/generated-types.d.ts +1 -1
  36. package/dist/destinations/display-video-360/addToAudience/index.js +5 -2
  37. package/dist/destinations/display-video-360/addToAudience/index.js.map +1 -1
  38. package/dist/destinations/display-video-360/errors.d.ts +2 -1
  39. package/dist/destinations/display-video-360/errors.js +7 -4
  40. package/dist/destinations/display-video-360/errors.js.map +1 -1
  41. package/dist/destinations/display-video-360/index.js +19 -12
  42. package/dist/destinations/display-video-360/index.js.map +1 -1
  43. package/dist/destinations/display-video-360/properties.d.ts +1 -1
  44. package/dist/destinations/display-video-360/properties.js +14 -17
  45. package/dist/destinations/display-video-360/properties.js.map +1 -1
  46. package/dist/destinations/display-video-360/removeFromAudience/generated-types.d.ts +1 -1
  47. package/dist/destinations/display-video-360/removeFromAudience/index.js +5 -2
  48. package/dist/destinations/display-video-360/removeFromAudience/index.js.map +1 -1
  49. package/dist/destinations/display-video-360/shared.d.ts +8 -1
  50. package/dist/destinations/display-video-360/shared.js +29 -8
  51. package/dist/destinations/display-video-360/shared.js.map +1 -1
  52. package/dist/destinations/engage/sendgrid/previewApiLookup/actionDefinition.js +3 -3
  53. package/dist/destinations/engage/sendgrid/previewApiLookup/actionDefinition.js.map +1 -1
  54. package/dist/destinations/engage/sendgrid/previewApiLookup/index.d.ts +0 -1
  55. package/dist/destinations/engage/sendgrid/previewApiLookup/index.js +0 -1
  56. package/dist/destinations/engage/sendgrid/previewApiLookup/index.js.map +1 -1
  57. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.d.ts +3 -2
  58. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js +36 -6
  59. package/dist/destinations/engage/sendgrid/sendEmail/SendEmailPerformer.js.map +1 -1
  60. package/dist/destinations/engage/sendgrid/sendEmail/actionDefinition.js +11 -2
  61. package/dist/destinations/engage/sendgrid/sendEmail/actionDefinition.js.map +1 -1
  62. package/dist/destinations/engage/twilio/sendMobilePush/actionDefinition.js +9 -0
  63. package/dist/destinations/engage/twilio/sendMobilePush/actionDefinition.js.map +1 -1
  64. package/dist/destinations/engage/twilio/sendSms/actionDefinition.js +9 -0
  65. package/dist/destinations/engage/twilio/sendSms/actionDefinition.js.map +1 -1
  66. package/dist/destinations/engage/twilio/sendWhatsApp/actionDefinition.js +9 -0
  67. package/dist/destinations/engage/twilio/sendWhatsApp/actionDefinition.js.map +1 -1
  68. package/dist/destinations/engage/utils/EngageStats.js +1 -1
  69. package/dist/destinations/engage/utils/EngageStats.js.map +1 -1
  70. package/dist/destinations/engage/utils/Profile.d.ts +6 -0
  71. package/dist/destinations/engage/utils/Profile.js +3 -0
  72. package/dist/destinations/engage/utils/Profile.js.map +1 -0
  73. package/dist/destinations/engage/utils/apiLookups.d.ts +22 -0
  74. package/dist/destinations/engage/utils/apiLookups.js +189 -0
  75. package/dist/destinations/engage/utils/apiLookups.js.map +1 -0
  76. package/dist/destinations/engage/utils/track.d.ts +17 -17
  77. package/dist/destinations/engage-messaging-sendgrid/previewApiLookup.types.d.ts +1 -0
  78. package/dist/destinations/engage-messaging-sendgrid/sendEmail.types.d.ts +2 -0
  79. package/dist/destinations/engage-messaging-twilio/sendMobilePush.types.d.ts +1 -0
  80. package/dist/destinations/engage-messaging-twilio/sendSms.types.d.ts +1 -0
  81. package/dist/destinations/engage-messaging-twilio/sendWhatsApp.types.d.ts +1 -0
  82. package/dist/destinations/facebook-conversions-api/constants.d.ts +1 -1
  83. package/dist/destinations/facebook-conversions-api/constants.js +1 -1
  84. package/dist/destinations/klaviyo/removeProfileToList/generated-types.d.ts +4 -0
  85. package/dist/destinations/klaviyo/removeProfileToList/generated-types.js +3 -0
  86. package/dist/destinations/klaviyo/removeProfileToList/generated-types.js.map +1 -0
  87. package/dist/destinations/klaviyo/removeProfileToList/index.d.ts +5 -0
  88. package/dist/destinations/klaviyo/removeProfileToList/index.js +43 -0
  89. package/dist/destinations/klaviyo/removeProfileToList/index.js.map +1 -0
  90. package/dist/destinations/mixpanel/utils.d.ts +13 -0
  91. package/dist/destinations/mixpanel/utils.js +117 -0
  92. package/dist/destinations/mixpanel/utils.js.map +1 -0
  93. package/dist/destinations/movable-ink/categoryView/generated-types.d.ts +22 -0
  94. package/dist/destinations/movable-ink/categoryView/generated-types.js +3 -0
  95. package/dist/destinations/movable-ink/categoryView/generated-types.js.map +1 -0
  96. package/dist/destinations/movable-ink/categoryView/index.d.ts +5 -0
  97. package/dist/destinations/movable-ink/categoryView/index.js +43 -0
  98. package/dist/destinations/movable-ink/categoryView/index.js.map +1 -0
  99. package/dist/destinations/movable-ink/conversion/generated-types.d.ts +20 -0
  100. package/dist/destinations/movable-ink/conversion/generated-types.js +3 -0
  101. package/dist/destinations/movable-ink/conversion/generated-types.js.map +1 -0
  102. package/dist/destinations/movable-ink/conversion/index.d.ts +5 -0
  103. package/dist/destinations/movable-ink/conversion/index.js +45 -0
  104. package/dist/destinations/movable-ink/conversion/index.js.map +1 -0
  105. package/dist/destinations/movable-ink/fields.d.ts +21 -0
  106. package/dist/destinations/movable-ink/fields.js +236 -0
  107. package/dist/destinations/movable-ink/fields.js.map +1 -0
  108. package/dist/destinations/movable-ink/identify/generated-types.d.ts +7 -0
  109. package/dist/destinations/movable-ink/identify/generated-types.js +3 -0
  110. package/dist/destinations/movable-ink/identify/generated-types.js.map +1 -0
  111. package/dist/destinations/movable-ink/identify/index.d.ts +5 -0
  112. package/dist/destinations/movable-ink/identify/index.js +32 -0
  113. package/dist/destinations/movable-ink/identify/index.js.map +1 -0
  114. package/dist/destinations/movable-ink/productAdded/generated-types.d.ts +22 -0
  115. package/dist/destinations/movable-ink/productAdded/generated-types.js +3 -0
  116. package/dist/destinations/movable-ink/productAdded/generated-types.js.map +1 -0
  117. package/dist/destinations/movable-ink/productAdded/index.d.ts +5 -0
  118. package/dist/destinations/movable-ink/productAdded/index.js +43 -0
  119. package/dist/destinations/movable-ink/productAdded/index.js.map +1 -0
  120. package/dist/destinations/movable-ink/productViewed/generated-types.d.ts +21 -0
  121. package/dist/destinations/movable-ink/productViewed/generated-types.js +3 -0
  122. package/dist/destinations/movable-ink/productViewed/generated-types.js.map +1 -0
  123. package/dist/destinations/movable-ink/productViewed/index.d.ts +5 -0
  124. package/dist/destinations/movable-ink/productViewed/index.js +43 -0
  125. package/dist/destinations/movable-ink/productViewed/index.js.map +1 -0
  126. package/dist/destinations/movable-ink/search/generated-types.d.ts +12 -0
  127. package/dist/destinations/movable-ink/search/generated-types.js +3 -0
  128. package/dist/destinations/movable-ink/search/generated-types.js.map +1 -0
  129. package/dist/destinations/movable-ink/search/index.d.ts +5 -0
  130. package/dist/destinations/movable-ink/search/index.js +43 -0
  131. package/dist/destinations/movable-ink/search/index.js.map +1 -0
  132. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.d.ts +25 -0
  133. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js +3 -0
  134. package/dist/destinations/movable-ink/sendCustomEvent/generated-types.js.map +1 -0
  135. package/dist/destinations/movable-ink/sendCustomEvent/index.d.ts +5 -0
  136. package/dist/destinations/movable-ink/sendCustomEvent/index.js +48 -0
  137. package/dist/destinations/movable-ink/sendCustomEvent/index.js.map +1 -0
  138. package/dist/destinations/pipedrive/createUpdateDeal/generated-types.d.ts +1 -1
  139. package/dist/destinations/pipedrive/createUpdateDeal/index.js +6 -4
  140. package/dist/destinations/pipedrive/createUpdateDeal/index.js.map +1 -1
  141. package/dist/destinations/pipedrive/createUpdateLead/generated-types.d.ts +1 -2
  142. package/dist/destinations/pipedrive/createUpdateLead/index.js +7 -12
  143. package/dist/destinations/pipedrive/createUpdateLead/index.js.map +1 -1
  144. package/dist/destinations/pipedrive/createUpdateOrganization/generated-types.d.ts +1 -1
  145. package/dist/destinations/pipedrive/createUpdateOrganization/index.js +6 -4
  146. package/dist/destinations/pipedrive/createUpdateOrganization/index.js.map +1 -1
  147. package/dist/destinations/pipedrive/createUpdatePerson/generated-types.d.ts +1 -1
  148. package/dist/destinations/pipedrive/createUpdatePerson/index.js +6 -4
  149. package/dist/destinations/pipedrive/createUpdatePerson/index.js.map +1 -1
  150. package/dist/destinations/pipedrive/pipedriveApi/deals.d.ts +1 -1
  151. package/dist/destinations/pipedrive/pipedriveApi/leads.d.ts +1 -2
  152. package/dist/destinations/pipedrive/pipedriveApi/leads.js.map +1 -1
  153. package/dist/destinations/pipedrive/pipedriveApi/organizations.d.ts +1 -1
  154. package/dist/destinations/pipedrive/pipedriveApi/persons.d.ts +1 -1
  155. package/dist/destinations/pipedrive/pipedriveApi/pipedrive-client.js +4 -1
  156. package/dist/destinations/pipedrive/pipedriveApi/pipedrive-client.js.map +1 -1
  157. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.d.ts +14 -0
  158. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js +3 -0
  159. package/dist/destinations/responsys/asyncMergePetRecords/generated-types.js.map +1 -0
  160. package/dist/destinations/responsys/asyncMergePetRecords/index.d.ts +5 -0
  161. package/dist/destinations/responsys/asyncMergePetRecords/index.js +113 -0
  162. package/dist/destinations/responsys/asyncMergePetRecords/index.js.map +1 -0
  163. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.d.ts +20 -0
  164. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js +3 -0
  165. package/dist/destinations/responsys/asyncMergeProfileListMembers/generated-types.js.map +1 -0
  166. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.d.ts +5 -0
  167. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js +174 -0
  168. package/dist/destinations/responsys/asyncMergeProfileListMembers/index.js.map +1 -0
  169. package/dist/destinations/responsys/generated-types.d.ts +5 -0
  170. package/dist/destinations/responsys/generated-types.js +3 -0
  171. package/dist/destinations/responsys/generated-types.js.map +1 -0
  172. package/dist/destinations/responsys/index.d.ts +4 -0
  173. package/dist/destinations/responsys/index.js +62 -0
  174. package/dist/destinations/responsys/index.js.map +1 -0
  175. package/dist/destinations/responsys/rsp-operations.d.ts +14 -0
  176. package/dist/destinations/responsys/rsp-operations.js +33 -0
  177. package/dist/destinations/responsys/rsp-operations.js.map +1 -0
  178. package/dist/destinations/responsys/rsp-properties.d.ts +4 -0
  179. package/dist/destinations/responsys/rsp-properties.js +27 -0
  180. package/dist/destinations/responsys/rsp-properties.js.map +1 -0
  181. package/dist/destinations/responsys/types.d.ts +37 -0
  182. package/dist/destinations/responsys/types.js +3 -0
  183. package/dist/destinations/responsys/types.js.map +1 -0
  184. package/dist/destinations/segment-profiles/generated-types.d.ts +0 -1
  185. package/dist/destinations/segment-profiles/index.js +0 -18
  186. package/dist/destinations/segment-profiles/index.js.map +1 -1
  187. package/dist/destinations/segment-profiles/sendGroup/index.js +5 -20
  188. package/dist/destinations/segment-profiles/sendGroup/index.js.map +1 -1
  189. package/dist/destinations/segment-profiles/sendIdentify/index.js +5 -20
  190. package/dist/destinations/segment-profiles/sendIdentify/index.js.map +1 -1
  191. package/dist/destinations/segment-profiles/sendSubscription/index.js +5 -21
  192. package/dist/destinations/segment-profiles/sendSubscription/index.js.map +1 -1
  193. package/dist/destinations/tiktok-audiences/functions.js +6 -1
  194. package/dist/destinations/tiktok-audiences/functions.js.map +1 -1
  195. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.d.ts +3 -0
  196. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js +43 -0
  197. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/formatter.js.map +1 -0
  198. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/generated-types.d.ts +33 -0
  199. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/generated-types.js +3 -0
  200. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/generated-types.js.map +1 -0
  201. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/index.d.ts +5 -0
  202. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/index.js +317 -0
  203. package/dist/destinations/tiktok-offline-conversions/reportOfflineEvent/index.js.map +1 -0
  204. package/dist/destinations/trackey/group.types.d.ts +11 -0
  205. package/dist/destinations/trackey/group.types.js +3 -0
  206. package/dist/destinations/trackey/group.types.js.map +1 -0
  207. package/dist/destinations/trackey/identify.types.d.ts +11 -0
  208. package/dist/destinations/trackey/identify.types.js +3 -0
  209. package/dist/destinations/trackey/identify.types.js.map +1 -0
  210. package/dist/destinations/trackey/track.types.d.ts +12 -0
  211. package/dist/destinations/trackey/track.types.js +3 -0
  212. package/dist/destinations/trackey/track.types.js.map +1 -0
  213. package/package.json +4 -4
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const actions_core_1 = require("@segment/actions-core");
7
+ const test_data_1 = require("../../../../lib/test-data");
8
+ const index_1 = __importDefault(require("../../index"));
9
+ const nock_1 = __importDefault(require("nock"));
10
+ const testDestination = actions_core_1.createTestIntegration(index_1.default);
11
+ const actionSlug = 'updateUserProfile';
12
+ const destinationSlug = 'Braze';
13
+ const seedName = `${destinationSlug}#${actionSlug}`;
14
+ const receivedAt = '2021-08-03T17:40:04.055Z';
15
+ const settings = {
16
+ app_id: 'my-app-id',
17
+ api_key: 'my-api-key',
18
+ endpoint: 'https://rest.iad-01.braze.com'
19
+ };
20
+ describe(`Testing snapshot for ${destinationSlug}'s ${actionSlug} destination action:`, () => {
21
+ it('required fields', async () => {
22
+ const action = index_1.default.actions[actionSlug];
23
+ const [eventData, settingsData] = test_data_1.generateTestData(seedName, index_1.default, action, true);
24
+ nock_1.default(/.*/).persist().get(/.*/).reply(200);
25
+ nock_1.default(/.*/).persist().post(/.*/).reply(200);
26
+ nock_1.default(/.*/).persist().put(/.*/).reply(200);
27
+ const event = actions_core_1.createTestEvent({
28
+ properties: eventData
29
+ });
30
+ const responses = await testDestination.testAction(actionSlug, {
31
+ event: event,
32
+ mapping: event.properties,
33
+ settings: settingsData,
34
+ auth: undefined
35
+ });
36
+ const request = responses[0].request;
37
+ const rawBody = await request.text();
38
+ try {
39
+ const json = JSON.parse(rawBody);
40
+ expect(json).toMatchSnapshot();
41
+ return;
42
+ }
43
+ catch (err) {
44
+ expect(rawBody).toMatchSnapshot();
45
+ }
46
+ expect(request.headers).toMatchSnapshot();
47
+ });
48
+ it('all fields', async () => {
49
+ const action = index_1.default.actions[actionSlug];
50
+ const [eventData, settingsData] = test_data_1.generateTestData(seedName, index_1.default, action, false);
51
+ nock_1.default(/.*/).persist().get(/.*/).reply(200);
52
+ nock_1.default(/.*/).persist().post(/.*/).reply(200);
53
+ nock_1.default(/.*/).persist().put(/.*/).reply(200);
54
+ const event = actions_core_1.createTestEvent({
55
+ properties: eventData
56
+ });
57
+ const responses = await testDestination.testAction(actionSlug, {
58
+ event: event,
59
+ mapping: event.properties,
60
+ settings: settingsData,
61
+ auth: undefined
62
+ });
63
+ const request = responses[0].request;
64
+ const rawBody = await request.text();
65
+ try {
66
+ const json = JSON.parse(rawBody);
67
+ expect(json).toMatchSnapshot();
68
+ return;
69
+ }
70
+ catch (err) {
71
+ expect(rawBody).toMatchSnapshot();
72
+ }
73
+ });
74
+ it('it should work with batched events', async () => {
75
+ nock_1.default('https://rest.iad-01.braze.com').post('/users/track').reply(200, {});
76
+ const events = [
77
+ actions_core_1.createTestEvent({
78
+ event: 'Test Event 1',
79
+ type: 'track',
80
+ receivedAt,
81
+ properties: {}
82
+ }),
83
+ actions_core_1.createTestEvent({
84
+ event: 'Test Event 2',
85
+ type: 'track',
86
+ receivedAt,
87
+ properties: {}
88
+ })
89
+ ];
90
+ const responses = await testDestination.testBatchAction(actionSlug, {
91
+ events,
92
+ useDefaultMappings: true,
93
+ mapping: {
94
+ external_id: {
95
+ '@path': '$.userId'
96
+ },
97
+ user_alias: {},
98
+ braze_id: {
99
+ '@path': '$.properties.braze_id'
100
+ },
101
+ name: {
102
+ '@path': '$.event'
103
+ },
104
+ time: {
105
+ '@path': '$.receivedAt'
106
+ },
107
+ properties: {
108
+ '@path': '$.properties'
109
+ },
110
+ products: {
111
+ '@path': '$.properties.products'
112
+ },
113
+ enable_batching: true,
114
+ _update_existing_only: true
115
+ },
116
+ settings: {
117
+ ...settings
118
+ }
119
+ });
120
+ expect(responses.length).toBe(1);
121
+ expect(responses[0].status).toBe(200);
122
+ expect(responses[0].options.headers).toMatchSnapshot();
123
+ expect(responses[0].options.json).toMatchSnapshot();
124
+ });
125
+ it('it should work with a single batched events', async () => {
126
+ nock_1.default('https://rest.iad-01.braze.com').post('/users/track').reply(200, {});
127
+ const events = [
128
+ actions_core_1.createTestEvent({
129
+ event: 'Test Event 1',
130
+ type: 'track',
131
+ receivedAt,
132
+ properties: {
133
+ products: [
134
+ {
135
+ quantity: 1,
136
+ product_id: 'Bowflex Treadmill 10',
137
+ price: 100
138
+ },
139
+ {
140
+ quantity: 2,
141
+ product_id: 'Bowflex Treadmill 20',
142
+ price: 200
143
+ }
144
+ ]
145
+ }
146
+ })
147
+ ];
148
+ const responses = await testDestination.testBatchAction(actionSlug, {
149
+ events,
150
+ useDefaultMappings: true,
151
+ mapping: {
152
+ external_id: {
153
+ '@path': '$.userId'
154
+ },
155
+ user_alias: {},
156
+ braze_id: {
157
+ '@path': '$.properties.braze_id'
158
+ },
159
+ name: {
160
+ '@path': '$.event'
161
+ },
162
+ time: {
163
+ '@path': '$.receivedAt'
164
+ },
165
+ properties: {
166
+ '@path': '$.properties'
167
+ },
168
+ products: {
169
+ '@path': '$.properties.products'
170
+ },
171
+ enable_batching: true,
172
+ _update_existing_only: true
173
+ },
174
+ settings: {
175
+ ...settings
176
+ }
177
+ });
178
+ expect(responses.length).toBe(1);
179
+ expect(responses[0].status).toBe(200);
180
+ expect(responses[0].options.headers).toMatchSnapshot();
181
+ expect(responses[0].options.json).toMatchSnapshot();
182
+ });
183
+ });
184
+ //# sourceMappingURL=snapshot.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.test.js","sourceRoot":"","sources":["../../../../../src/destinations/braze/updateUserProfile/__snapshots__/snapshot.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export interface Payload {
2
2
  enable_batching: boolean;
3
3
  external_audience_id: string;
4
- anonymous_id?: string;
5
4
  mobile_advertising_id?: string;
6
5
  google_gid?: string;
6
+ partner_provided_id?: string;
7
7
  }
@@ -5,19 +5,22 @@ const properties_1 = require("../properties");
5
5
  const action = {
6
6
  title: 'Add to Audience',
7
7
  description: 'Add a user to a Display & Video 360 audience.',
8
+ defaultSubscription: 'event = "Audience Entered"',
8
9
  fields: {
9
10
  enable_batching: { ...properties_1.enable_batching },
10
11
  external_audience_id: { ...properties_1.external_audience_id },
11
- anonymous_id: { ...properties_1.anonymous_id },
12
12
  mobile_advertising_id: { ...properties_1.mobile_advertising_id },
13
- google_gid: { ...properties_1.google_gid }
13
+ google_gid: { ...properties_1.google_gid },
14
+ partner_provided_id: { ...properties_1.partner_provided_id }
14
15
  },
15
16
  perform: async (request, { payload, statsContext }) => {
17
+ statsContext?.tags.push('slug:actions-display-video-360');
16
18
  statsContext?.statsClient?.incr('addToAudience', 1, statsContext?.tags);
17
19
  await shared_1.handleUpdate(request, [payload], 'add', statsContext);
18
20
  return { success: true };
19
21
  },
20
22
  performBatch: async (request, { payload, statsContext }) => {
23
+ statsContext?.tags.push('slug:actions-display-video-360');
21
24
  statsContext?.statsClient?.incr('addToAudience.batch', 1, statsContext?.tags);
22
25
  await shared_1.handleUpdate(request, payload, 'add', statsContext);
23
26
  return { success: true };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/display-video-360/addToAudience/index.ts"],"names":[],"mappings":";;AAIA,sCAAwC;AAExC,8CAAsH;AAEtH,MAAM,MAAM,GAA0D;IACpE,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,+CAA+C;IAC5D,MAAM,EAAE;QACN,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;QACjD,YAAY,EAAE,EAAE,GAAG,yBAAY,EAAE;QACjC,qBAAqB,EAAE,EAAE,GAAG,kCAAqB,EAAE;QACnD,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;KAC9B;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACpD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACvE,MAAM,qBAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACzD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC7E,MAAM,qBAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;QACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/display-video-360/addToAudience/index.ts"],"names":[],"mappings":";;AAIA,sCAAwC;AAExC,8CAMsB;AAEtB,MAAM,MAAM,GAA0D;IACpE,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,+CAA+C;IAC5D,mBAAmB,EAAE,4BAA4B;IACjD,MAAM,EAAE;QACN,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;QACjD,qBAAqB,EAAE,EAAE,GAAG,kCAAqB,EAAE;QACnD,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,mBAAmB,EAAE,EAAE,GAAG,gCAAmB,EAAE;KAChD;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACpD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QACzD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACvE,MAAM,qBAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACzD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QACzD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC7E,MAAM,qBAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;QACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,2 +1,3 @@
1
1
  import { IntegrationError, InvalidAuthenticationError } from '@segment/actions-core';
2
- export declare const handleRequestError: (error: unknown) => IntegrationError | InvalidAuthenticationError;
2
+ import { StatsClient } from '@segment/actions-core/destination-kit';
3
+ export declare const handleRequestError: (error: unknown, statsName: string, statsClient: StatsClient | undefined) => IntegrationError | InvalidAuthenticationError;
@@ -7,18 +7,17 @@ const isGoogleAPIError = (error) => {
7
7
  const e = error;
8
8
  return (typeof e.response === 'object' &&
9
9
  e.response !== null &&
10
- typeof e.response.status === 'number' &&
11
10
  typeof e.response.data === 'object' &&
12
11
  e.response.data !== null &&
13
12
  typeof e.response.data.error === 'object' &&
14
- e.response.data.error !== null &&
15
- typeof e.response.data.error.message === 'string');
13
+ e.response.data.error !== null);
16
14
  }
17
15
  return false;
18
16
  };
19
- const handleRequestError = (error) => {
17
+ const handleRequestError = (error, statsName, statsClient) => {
20
18
  if (!isGoogleAPIError(error)) {
21
19
  if (!error) {
20
+ statsClient?.incr(`${statsName}.error.UNKNOWN_ERROR`, 1);
22
21
  return new actions_core_1.IntegrationError('Unknown error', 'UNKNOWN_ERROR', 500);
23
22
  }
24
23
  }
@@ -26,14 +25,18 @@ const handleRequestError = (error) => {
26
25
  const code = gError.response?.status;
27
26
  const message = gError.response?.data?.error?.message;
28
27
  if (code === 401) {
28
+ statsClient?.incr(`${statsName}.error.INVALID_AUTHENTICATION`, 1);
29
29
  return new actions_core_1.InvalidAuthenticationError(message, actions_core_1.ErrorCodes.INVALID_AUTHENTICATION);
30
30
  }
31
31
  if (code === 501) {
32
+ statsClient?.incr(`${statsName}.error.INTEGRATION_ERROR`, 1);
32
33
  return new actions_core_1.IntegrationError(message, 'INTEGRATION_ERROR', 501);
33
34
  }
34
35
  if (code === 408 || code === 423 || code === 429 || code >= 500) {
36
+ statsClient?.incr(`${statsName}.error.RETRYABLE_ERROR`, 1);
35
37
  return new actions_core_1.IntegrationError(message, 'RETRYABLE_ERROR', code);
36
38
  }
39
+ statsClient?.incr(`${statsName}.error.INTEGRATION_ERROR`, 1);
37
40
  return new actions_core_1.IntegrationError(message, 'INTEGRATION_ERROR', code);
38
41
  };
39
42
  exports.handleRequestError = handleRequestError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/destinations/display-video-360/errors.ts"],"names":[],"mappings":";;;AAAA,wDAAgG;AAIhG,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC/C,MAAM,CAAC,GAAG,KAAuB,CAAA;QAEjC,OAAO,CACL,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAC9B,CAAC,CAAC,QAAQ,KAAK,IAAI;YACnB,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ;YACrC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;YACnC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;YACxB,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;YACzC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI;YAC9B,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAClD,CAAA;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAGM,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAE,EAAE;IACnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC5B,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,+BAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;SACnE;KACF;IAED,MAAM,MAAM,GAAG,KAAuB,CAAA;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAA;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAA;IAErD,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,IAAI,yCAA0B,CAAC,OAAO,EAAE,yBAAU,CAAC,sBAAsB,CAAC,CAAA;KAClF;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,IAAI,+BAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAA;KAC/D;IAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE;QAC/D,OAAO,IAAI,+BAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;KAC9D;IAED,OAAO,IAAI,+BAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;AACjE,CAAC,CAAA;AAxBY,QAAA,kBAAkB,sBAwB9B"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/destinations/display-video-360/errors.ts"],"names":[],"mappings":";;;AAAA,wDAAgG;AAKhG,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC/C,MAAM,CAAC,GAAG,KAAuB,CAAA;QAEjC,OAAO,CACL,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAC9B,CAAC,CAAC,QAAQ,KAAK,IAAI;YACnB,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;YACnC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI;YACxB,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;YACzC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAC/B,CAAA;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAGM,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAE,SAAiB,EAAE,WAAoC,EAAE,EAAE;IAC5G,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC5B,IAAI,CAAC,KAAK,EAAE;YACV,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,sBAAsB,EAAE,CAAC,CAAC,CAAA;YACxD,OAAO,IAAI,+BAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;SACnE;KACF;IAED,MAAM,MAAM,GAAG,KAAuB,CAAA;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAA;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAA;IAErD,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,+BAA+B,EAAE,CAAC,CAAC,CAAA;QACjE,OAAO,IAAI,yCAA0B,CAAC,OAAO,EAAE,yBAAU,CAAC,sBAAsB,CAAC,CAAA;KAClF;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,0BAA0B,EAAE,CAAC,CAAC,CAAA;QAC5D,OAAO,IAAI,+BAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAA;KAC/D;IAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE;QAC/D,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,wBAAwB,EAAE,CAAC,CAAC,CAAA;QAC1D,OAAO,IAAI,+BAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;KAC9D;IAED,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,0BAA0B,EAAE,CAAC,CAAC,CAAA;IAC5D,OAAO,IAAI,+BAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;AACjE,CAAC,CAAA;AA7BY,QAAA,kBAAkB,sBA6B9B"}
@@ -20,7 +20,7 @@ const destination = {
20
20
  const { data } = await request(constants_1.OAUTH_URL, {
21
21
  method: 'POST',
22
22
  body: new URLSearchParams({
23
- refresh_token: auth.refreshToken,
23
+ refresh_token: process.env.ACTIONS_DISPLAY_VIDEO_360_REFRESH_TOKEN,
24
24
  client_id: auth.clientId,
25
25
  client_secret: auth.clientSecret,
26
26
  grant_type: 'refresh_token'
@@ -42,9 +42,9 @@ const destination = {
42
42
  description: 'The type of the advertiser account you have linked to this Display & Video 360 destination.',
43
43
  required: true,
44
44
  choices: [
45
- { label: 'DISPLAY_VIDEO_ADVERTISER', value: 'DISPLAY_VIDEO_ADVERTISER' },
46
- { label: 'DISPLAY_VIDEO_PARTNER', value: 'DISPLAY_VIDEO_PARTNER' },
47
- { label: 'DFP_BY_GOOGLE or GOOGLE_AD_MANAGER', value: 'GOOGLE_AD_MANAGER' }
45
+ { label: 'Advertiser', value: 'DISPLAY_VIDEO_ADVERTISER' },
46
+ { label: 'Partner', value: 'DISPLAY_VIDEO_PARTNER' },
47
+ { label: 'Publisher', value: 'GOOGLE_AD_MANAGER' }
48
48
  ]
49
49
  }
50
50
  },
@@ -57,6 +57,9 @@ const destination = {
57
57
  const { audienceName, audienceSettings, statsContext, settings } = createAudienceInput;
58
58
  const { advertiserId, accountType } = audienceSettings || {};
59
59
  const { statsClient, tags: statsTags } = statsContext || {};
60
+ const statsName = 'createAudience';
61
+ statsTags?.push(`slug:${destination.slug}`);
62
+ const authSettings = shared_1.getAuthSettings(settings);
60
63
  if (!audienceName) {
61
64
  throw new actions_core_1.IntegrationError('Missing audience name value', 'MISSING_REQUIRED_FIELD', 400);
62
65
  }
@@ -70,8 +73,9 @@ const destination = {
70
73
  const partnerCreateAudienceUrl = constants_1.CREATE_AUDIENCE_URL.replace('advertiserID', advertiserId).replace('accountType', accountType);
71
74
  let response;
72
75
  try {
76
+ const authToken = await shared_1.getAuthToken(request, authSettings);
73
77
  response = await request(partnerCreateAudienceUrl, {
74
- headers: shared_1.buildHeaders(createAudienceInput.audienceSettings, settings),
78
+ headers: shared_1.buildHeaders(createAudienceInput.audienceSettings, authToken),
75
79
  method: 'POST',
76
80
  json: {
77
81
  operations: [
@@ -87,20 +91,22 @@ const destination = {
87
91
  }
88
92
  });
89
93
  const r = await response?.json();
90
- statsClient?.incr('createAudience.success', 1, statsTags);
94
+ statsClient?.incr(`${statsName}.success`, 1, statsTags);
91
95
  return {
92
96
  externalId: r['results'][0]['resourceName']
93
97
  };
94
98
  }
95
99
  catch (error) {
96
- statsClient?.incr('createAudience.error', 1, statsTags);
97
- throw errors_1.handleRequestError(error);
100
+ throw errors_1.handleRequestError(error, statsName, statsClient);
98
101
  }
99
102
  },
100
103
  async getAudience(request, getAudienceInput) {
101
104
  const { statsContext, audienceSettings, settings } = getAudienceInput;
102
105
  const { statsClient, tags: statsTags } = statsContext || {};
103
106
  const { advertiserId, accountType } = audienceSettings || {};
107
+ const statsName = 'getAudience';
108
+ statsTags?.push(`slug:${destination.slug}`);
109
+ const authSettings = shared_1.getAuthSettings(settings);
104
110
  if (!advertiserId) {
105
111
  throw new actions_core_1.IntegrationError('Missing required advertiser ID value', 'MISSING_REQUIRED_FIELD', 400);
106
112
  }
@@ -109,8 +115,9 @@ const destination = {
109
115
  }
110
116
  const advertiserGetAudienceUrl = constants_1.GET_AUDIENCE_URL.replace('advertiserID', advertiserId).replace('accountType', accountType);
111
117
  try {
118
+ const authToken = await shared_1.getAuthToken(request, authSettings);
112
119
  const response = await request(advertiserGetAudienceUrl, {
113
- headers: shared_1.buildHeaders(audienceSettings, settings),
120
+ headers: shared_1.buildHeaders(audienceSettings, authToken),
114
121
  method: 'POST',
115
122
  json: {
116
123
  query: `SELECT user_list.name, user_list.description, user_list.membership_status, user_list.match_rate_percentage FROM user_list WHERE user_list.resource_name = "${getAudienceInput.externalId}"`
@@ -119,16 +126,16 @@ const destination = {
119
126
  const r = await response.json();
120
127
  const externalId = r[0]?.results[0]?.userList?.resourceName;
121
128
  if (externalId !== getAudienceInput.externalId) {
129
+ statsClient?.incr(`${statsName}.error.UNABLE_TO_VERIFY`, 1, statsTags);
122
130
  throw new actions_core_1.IntegrationError("Unable to verify ownership over audience. Segment Audience ID doesn't match Googles Audience ID.", 'INVALID_REQUEST_DATA', 400);
123
131
  }
124
- statsClient?.incr('getAudience.success', 1, statsTags);
132
+ statsClient?.incr(`${statsName}.success`, 1, statsTags);
125
133
  return {
126
134
  externalId: externalId
127
135
  };
128
136
  }
129
137
  catch (error) {
130
- statsClient?.incr('getAudience.error', 1, statsTags);
131
- throw errors_1.handleRequestError(error);
138
+ throw errors_1.handleRequestError(error, statsName, statsClient);
132
139
  }
133
140
  }
134
141
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/display-video-360/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destinations/display-video-360/index.ts"],"names":[],"mappings":";;;;;AAAA,wDAAuF;AAKvF,oEAA2C;AAC3C,8EAAqD;AAErD,2CAA8E;AAC9E,qCAAsE;AACtE,qCAA6C;AAE7C,MAAM,WAAW,GAA8D;IAC7E,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,EAAE;QACV,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAuB,qBAAS,EAAE;gBAC9D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,uCAAiD;oBAC5E,SAAS,EAAE,IAAI,CAAC,QAAQ;oBACxB,aAAa,EAAE,IAAI,CAAC,YAAY;oBAChC,UAAU,EAAE,eAAe;iBAC5B,CAAC;aACH,CAAC,CAAA;YACF,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAA;QAC3C,CAAC;KACF;IACD,cAAc,EAAE;QACd,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,0KAA0K;SAC7K;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,6FAA6F;YAC1G,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,0BAA0B,EAAE;gBAC1D,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAE;gBACpD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE;aACnD;SACF;KACF;IACD,cAAc,EAAE;QACd,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,IAAI;SACzB;QACD,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB;YAC/C,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAA;YACtF,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;YAC5D,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,IAAI,EAAE,CAAA;YAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAA;YAClC,SAAS,EAAE,IAAI,CAAC,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;YAG3C,MAAM,YAAY,GAAG,wBAAe,CAAC,QAAQ,CAAC,CAAA;YAE9C,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,+BAAgB,CAAC,6BAA6B,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;aACzF;YAED,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,+BAAgB,CAAC,6BAA6B,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;aACzF;YAED,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,IAAI,+BAAgB,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;aACxF;YAED,MAAM,WAAW,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAA;YACxF,MAAM,wBAAwB,GAAG,+BAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,OAAO,CAChG,aAAa,EACb,WAAW,CACZ,CAAA;YAED,IAAI,QAAQ,CAAA;YACZ,IAAI;gBACF,MAAM,SAAS,GAAG,MAAM,qBAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;gBAC3D,QAAQ,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE;oBACjD,OAAO,EAAE,qBAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBACtE,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE;wBACJ,UAAU,EAAE;4BACV;gCACE,MAAM,EAAE;oCACN,GAAG,WAAW;oCACd,IAAI,EAAE,YAAY;oCAClB,WAAW,EAAE,oBAAoB;oCACjC,kBAAkB,EAAE,KAAK;iCAC1B;6BACF;yBACF;qBACF;iBACF,CAAC,CAAA;gBAEF,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChC,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;gBAEvD,OAAO;oBACL,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;iBAC5C,CAAA;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,2BAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;aACxD;QACH,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB;YACzC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAA;YACrE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,IAAI,EAAE,CAAA;YAC3D,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;YAC5D,MAAM,SAAS,GAAG,aAAa,CAAA;YAC/B,SAAS,EAAE,IAAI,CAAC,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;YAG3C,MAAM,YAAY,GAAG,wBAAe,CAAC,QAAQ,CAAC,CAAA;YAE9C,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,+BAAgB,CAAC,sCAAsC,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;aAClG;YAED,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,IAAI,+BAAgB,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;aACxF;YAED,MAAM,wBAAwB,GAAG,4BAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,OAAO,CAC7F,aAAa,EACb,WAAW,CACZ,CAAA;YAED,IAAI;gBACF,MAAM,SAAS,GAAG,MAAM,qBAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE;oBACvD,OAAO,EAAE,qBAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBAClD,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE;wBACJ,KAAK,EAAE,8JAA8J,gBAAgB,CAAC,UAAU,GAAG;qBACpM;iBACF,CAAC,CAAA;gBAEF,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAE/B,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAA;gBAE3D,IAAI,UAAU,KAAK,gBAAgB,CAAC,UAAU,EAAE;oBAC9C,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,yBAAyB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;oBACtE,MAAM,IAAI,+BAAgB,CACxB,kGAAkG,EAClG,sBAAsB,EACtB,GAAG,CACJ,CAAA;iBACF;gBAED,WAAW,EAAE,IAAI,CAAC,GAAG,SAAS,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;gBACvD,OAAO;oBACL,UAAU,EAAE,UAAU;iBACvB,CAAA;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,2BAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;aACxD;QACH,CAAC;KACF;IACD,OAAO,EAAE;QACP,aAAa,EAAb,uBAAa;QACb,kBAAkB,EAAlB,4BAAkB;KACnB;CACF,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { InputField } from '@segment/actions-core/destination-kit/types';
2
- export declare const anonymous_id: InputField;
3
2
  export declare const mobile_advertising_id: InputField;
4
3
  export declare const google_gid: InputField;
4
+ export declare const partner_provided_id: InputField;
5
5
  export declare const enable_batching: InputField;
6
6
  export declare const external_audience_id: InputField;
@@ -1,35 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.external_audience_id = exports.enable_batching = exports.google_gid = exports.mobile_advertising_id = exports.anonymous_id = void 0;
4
- exports.anonymous_id = {
5
- label: 'Anonymous ID',
6
- description: 'Anonymous ID',
7
- type: 'string',
8
- required: false,
9
- default: {
10
- '@path': '$.anonymousId'
11
- },
12
- readOnly: true
13
- };
3
+ exports.external_audience_id = exports.enable_batching = exports.partner_provided_id = exports.google_gid = exports.mobile_advertising_id = void 0;
14
4
  exports.mobile_advertising_id = {
15
5
  label: 'Mobile Advertising ID',
16
- description: 'Mobile Advertising ID',
6
+ description: 'Mobile Advertising ID. This could be a GAID, or IDFA.',
17
7
  type: 'string',
18
8
  required: false,
19
9
  default: {
20
10
  '@path': '$.context.device.advertisingId'
21
- },
22
- readOnly: true
11
+ }
23
12
  };
24
13
  exports.google_gid = {
25
14
  label: 'Google GID',
26
- description: 'Google GID',
15
+ description: 'Google GID.',
27
16
  type: 'string',
28
17
  required: false,
29
18
  default: {
30
19
  '@path': '$.context.traits.google_gid'
31
- },
32
- readOnly: true
20
+ }
21
+ };
22
+ exports.partner_provided_id = {
23
+ label: 'Partner Provided ID',
24
+ description: 'Partner Provided ID.',
25
+ type: 'string',
26
+ required: false,
27
+ default: {
28
+ '@path': '$.anonymousId'
29
+ }
33
30
  };
34
31
  exports.enable_batching = {
35
32
  label: 'Enable Batching',
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/display-video-360/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,YAAY,GAAe;IACtC,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,eAAe;KACzB;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,qBAAqB,GAAe;IAC/C,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,uBAAuB;IACpC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,gCAAgC;KAC1C;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,6BAA6B;KACvC;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,sDAAsD;IACnE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;CACpB,CAAA;AAEY,QAAA,oBAAoB,GAAe;IAC9C,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE;QACP,OAAO,EAAE,yCAAyC;KACnD;CACF,CAAA"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../src/destinations/display-video-360/properties.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAe;IAC/C,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,uDAAuD;IACpE,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,gCAAgC;KAC1C;CACF,CAAA;AAEY,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,6BAA6B;KACvC;CACF,CAAA;AAEY,QAAA,mBAAmB,GAAe;IAC7C,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE;QACP,OAAO,EAAE,eAAe;KACzB;CACF,CAAA;AAEY,QAAA,eAAe,GAAe;IACzC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,sDAAsD;IACnE,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;CACpB,CAAA;AAEY,QAAA,oBAAoB,GAAe;IAC9C,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE;QACP,OAAO,EAAE,yCAAyC;KACnD;CACF,CAAA"}
@@ -1,7 +1,7 @@
1
1
  export interface Payload {
2
2
  enable_batching: boolean;
3
3
  external_audience_id: string;
4
- anonymous_id?: string;
5
4
  mobile_advertising_id?: string;
6
5
  google_gid?: string;
6
+ partner_provided_id?: string;
7
7
  }
@@ -5,19 +5,22 @@ const properties_1 = require("../properties");
5
5
  const action = {
6
6
  title: 'Remove from Audience',
7
7
  description: 'Remove users from an audience',
8
+ defaultSubscription: 'event = "Audience Exited"',
8
9
  fields: {
9
10
  enable_batching: { ...properties_1.enable_batching },
10
11
  external_audience_id: { ...properties_1.external_audience_id },
11
- anonymous_id: { ...properties_1.anonymous_id },
12
12
  mobile_advertising_id: { ...properties_1.mobile_advertising_id },
13
- google_gid: { ...properties_1.google_gid }
13
+ google_gid: { ...properties_1.google_gid },
14
+ partner_provided_id: { ...properties_1.partner_provided_id }
14
15
  },
15
16
  perform: async (request, { payload, statsContext }) => {
17
+ statsContext?.tags.push('slug:actions-display-video-360');
16
18
  statsContext?.statsClient?.incr('removeFromAudience', 1, statsContext?.tags);
17
19
  await shared_1.handleUpdate(request, [payload], 'remove', statsContext);
18
20
  return { success: true };
19
21
  },
20
22
  performBatch: async (request, { payload, statsContext }) => {
23
+ statsContext?.tags.push('slug:actions-display-video-360');
21
24
  statsContext?.statsClient?.incr('removeFromAudience.batch', 1, statsContext?.tags);
22
25
  await shared_1.handleUpdate(request, payload, 'remove', statsContext);
23
26
  return { success: true };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/display-video-360/removeFromAudience/index.ts"],"names":[],"mappings":";;AAIA,sCAAwC;AAExC,8CAAsH;AAEtH,MAAM,MAAM,GAA0D;IACpE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,+BAA+B;IAC5C,MAAM,EAAE;QACN,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;QACjD,YAAY,EAAE,EAAE,GAAG,yBAAY,EAAE;QACjC,qBAAqB,EAAE,EAAE,GAAG,kCAAqB,EAAE;QACnD,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;KAC9B;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACpD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC5E,MAAM,qBAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACzD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAClF,MAAM,qBAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/display-video-360/removeFromAudience/index.ts"],"names":[],"mappings":";;AAIA,sCAAwC;AAExC,8CAMsB;AAEtB,MAAM,MAAM,GAA0D;IACpE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,+BAA+B;IAC5C,mBAAmB,EAAE,2BAA2B;IAChD,MAAM,EAAE;QACN,eAAe,EAAE,EAAE,GAAG,4BAAe,EAAE;QACvC,oBAAoB,EAAE,EAAE,GAAG,iCAAoB,EAAE;QACjD,qBAAqB,EAAE,EAAE,GAAG,kCAAqB,EAAE;QACnD,UAAU,EAAE,EAAE,GAAG,uBAAU,EAAE;QAC7B,mBAAmB,EAAE,EAAE,GAAG,gCAAmB,EAAE;KAChD;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACpD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QACzD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC5E,MAAM,qBAAY,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACzD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QACzD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAClF,MAAM,qBAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
@@ -1,8 +1,14 @@
1
1
  import { RequestClient, StatsContext } from '@segment/actions-core';
2
+ import type { OAuth2ClientCredentials } from '@segment/actions-core/destination-kit/oauth2';
2
3
  import { UpdateUsersDataRequest } from './proto/protofile';
3
4
  import { ListOperation, UpdateHandlerPayload, UserOperation } from './types';
4
5
  import type { AudienceSettings, Settings } from './generated-types';
5
- export declare const buildHeaders: (audienceSettings: AudienceSettings | undefined, settings: Settings) => {
6
+ declare type SettingsWithOauth = Settings & {
7
+ oauth: OAuth2ClientCredentials;
8
+ };
9
+ export declare const getAuthSettings: (settings: SettingsWithOauth) => OAuth2ClientCredentials;
10
+ export declare const getAuthToken: (request: RequestClient, settings: OAuth2ClientCredentials) => Promise<string>;
11
+ export declare const buildHeaders: (audienceSettings: AudienceSettings | undefined, accessToken: string) => {
6
12
  Authorization: string;
7
13
  'Content-Type': string;
8
14
  'Login-Customer-Id': string;
@@ -14,3 +20,4 @@ export declare const sendUpdateRequest: (request: RequestClient, updateRequest:
14
20
  export declare const handleUpdate: (request: RequestClient, payload: UpdateHandlerPayload[], operation: 'add' | 'remove', statsContext: StatsContext | undefined) => Promise<{
15
21
  status: number;
16
22
  }>;
23
+ export {};
@@ -1,15 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleUpdate = exports.sendUpdateRequest = exports.createUpdateRequest = exports.bulkUploaderResponseHandler = exports.assembleRawOps = exports.buildHeaders = void 0;
3
+ exports.handleUpdate = exports.sendUpdateRequest = exports.createUpdateRequest = exports.bulkUploaderResponseHandler = exports.assembleRawOps = exports.buildHeaders = exports.getAuthToken = exports.getAuthSettings = void 0;
4
4
  const actions_core_1 = require("@segment/actions-core");
5
5
  const constants_1 = require("./constants");
6
6
  const protofile_1 = require("./proto/protofile");
7
- const buildHeaders = (audienceSettings, settings) => {
8
- if (!audienceSettings || !settings) {
7
+ const getAuthSettings = (settings) => {
8
+ const { oauth } = settings;
9
+ return {
10
+ clientId: oauth.clientId,
11
+ clientSecret: oauth.clientSecret
12
+ };
13
+ };
14
+ exports.getAuthSettings = getAuthSettings;
15
+ const getAuthToken = async (request, settings) => {
16
+ const { data } = await request(constants_1.OAUTH_URL, {
17
+ method: 'POST',
18
+ body: new URLSearchParams({
19
+ refresh_token: process.env.ACTIONS_DISPLAY_VIDEO_360_REFRESH_TOKEN,
20
+ client_id: settings.clientId,
21
+ client_secret: settings.clientSecret,
22
+ grant_type: 'refresh_token'
23
+ })
24
+ });
25
+ return data.access_token;
26
+ };
27
+ exports.getAuthToken = getAuthToken;
28
+ const buildHeaders = (audienceSettings, accessToken) => {
29
+ if (!audienceSettings || !accessToken) {
9
30
  throw new actions_core_1.IntegrationError('Bad Request', 'INVALID_REQUEST_DATA', 400);
10
31
  }
11
32
  return {
12
- Authorization: `Bearer ${settings?.oauth?.accessToken}`,
33
+ Authorization: `Bearer ${accessToken}`,
13
34
  'Content-Type': 'application/json',
14
35
  'Login-Customer-Id': `products/${audienceSettings.accountType}/customers/${audienceSettings?.advertiserId}`
15
36
  };
@@ -18,7 +39,7 @@ exports.buildHeaders = buildHeaders;
18
39
  const assembleRawOps = (payload, operation) => {
19
40
  const rawOperations = [];
20
41
  const audienceId = parseInt(payload.external_audience_id.split('/').pop() || '-1');
21
- const isDelete = operation === 'remove' ? true : false;
42
+ const isDelete = operation === 'remove';
22
43
  if (payload.google_gid) {
23
44
  rawOperations.push({
24
45
  UserId: payload.google_gid,
@@ -36,9 +57,9 @@ const assembleRawOps = (payload, operation) => {
36
57
  Delete: isDelete
37
58
  });
38
59
  }
39
- if (payload.anonymous_id) {
60
+ if (payload.partner_provided_id) {
40
61
  rawOperations.push({
41
- UserId: payload.anonymous_id,
62
+ UserId: payload.partner_provided_id,
42
63
  UserIdType: protofile_1.UserIdType.PARTNER_PROVIDED_ID,
43
64
  UserListId: audienceId,
44
65
  Delete: isDelete
@@ -91,7 +112,7 @@ const createUpdateRequest = (payload, operation) => {
91
112
  userId: rawOp.UserId,
92
113
  userIdType: rawOp.UserIdType,
93
114
  userListId: BigInt(rawOp.UserListId),
94
- delete: !!rawOp.Delete
115
+ delete: rawOp.Delete
95
116
  });
96
117
  if (!op) {
97
118
  throw new Error('Unable to create UserDataOperation');