@@ -29,7 +29,8 @@ import {
2929 FcmEvent ,
3030 LogEvent ,
3131 LogRequest ,
32- LogResponse
32+ LogResponse ,
33+ ComplianceData
3334} from '../interfaces/logging-types' ;
3435
3536import { MessagePayloadInternal } from '../interfaces/internal-message-payload' ;
@@ -162,7 +163,7 @@ export async function stageLog(
162163 await messaging . firebaseDependencies . installations . getId ( )
163164 ) ;
164165
165- createAndEnqueueLogEvent ( messaging , fcmEvent ) ;
166+ createAndEnqueueLogEvent ( messaging , fcmEvent , internalPayload . productId ) ;
166167}
167168
168169function createFcmEvent (
@@ -208,18 +209,35 @@ function createFcmEvent(
208209
209210function createAndEnqueueLogEvent (
210211 messaging : MessagingService ,
211- fcmEvent : FcmEvent
212+ fcmEvent : FcmEvent ,
213+ productId : number
212214) : void {
213215 const logEvent = { } as LogEvent ;
214216
215217 /* eslint-disable camelcase */
216218 logEvent . event_time_ms = Math . floor ( Date . now ( ) ) . toString ( ) ;
217219 logEvent . source_extension_json_proto3 = JSON . stringify ( fcmEvent ) ;
220+
221+ if ( ! ! productId ) {
222+ logEvent . compliance_data = buildComplianceData ( productId ) ;
223+ }
218224 // eslint-disable-next-line camelcase
219225
220226 messaging . logEvents . push ( logEvent ) ;
221227}
222228
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+
223241export function _createLogRequest ( logEventQueue : LogEvent [ ] ) : LogRequest {
224242 const logRequest = { } as LogRequest ;
225243
0 commit comments