@@ -29,7 +29,8 @@ import {
29
29
FcmEvent ,
30
30
LogEvent ,
31
31
LogRequest ,
32
- LogResponse
32
+ LogResponse ,
33
+ ComplianceData
33
34
} from '../interfaces/logging-types' ;
34
35
35
36
import { MessagePayloadInternal } from '../interfaces/internal-message-payload' ;
@@ -162,7 +163,7 @@ export async function stageLog(
162
163
await messaging . firebaseDependencies . installations . getId ( )
163
164
) ;
164
165
165
- createAndEnqueueLogEvent ( messaging , fcmEvent ) ;
166
+ createAndEnqueueLogEvent ( messaging , fcmEvent , internalPayload . productId ) ;
166
167
}
167
168
168
169
function createFcmEvent (
@@ -208,18 +209,35 @@ function createFcmEvent(
208
209
209
210
function createAndEnqueueLogEvent (
210
211
messaging : MessagingService ,
211
- fcmEvent : FcmEvent
212
+ fcmEvent : FcmEvent ,
213
+ productId : number
212
214
) : void {
213
215
const logEvent = { } as LogEvent ;
214
216
215
217
/* eslint-disable camelcase */
216
218
logEvent . event_time_ms = Math . floor ( Date . now ( ) ) . toString ( ) ;
217
219
logEvent . source_extension_json_proto3 = JSON . stringify ( fcmEvent ) ;
220
+
221
+ if ( ! ! productId ) {
222
+ logEvent . compliance_data = buildComplianceData ( productId ) ;
223
+ }
218
224
// eslint-disable-next-line camelcase
219
225
220
226
messaging . logEvents . push ( logEvent ) ;
221
227
}
222
228
229
+ function buildComplianceData ( productId : number ) : ComplianceData {
230
+ const complianceData : ComplianceData = {
231
+ privacy_context : {
232
+ prequest : {
233
+ origin_associated_product_id : productId
234
+ }
235
+ }
236
+ } ;
237
+
238
+ return complianceData ;
239
+ }
240
+
223
241
export function _createLogRequest ( logEventQueue : LogEvent [ ] ) : LogRequest {
224
242
const logRequest = { } as LogRequest ;
225
243
0 commit comments