diff --git a/lib/actions/report-actions.js b/lib/actions/report-actions.js --- a/lib/actions/report-actions.js +++ b/lib/actions/report-actions.js @@ -1,5 +1,6 @@ // @flow +import type { AuthMetadata } from '../shared/identity-client-context'; import type { ClientReportCreationRequest, ReportCreationResponse, @@ -14,10 +15,11 @@ const sendReport: ( request: ClientReportCreationRequest, -) => Promise = async request => { + authMetadata: ?AuthMetadata, +) => Promise = async (request, authMetadata) => { const { reportIDs: [id], - } = await callSendReports([request]); + } = await callSendReports([request], authMetadata); if (!id) { throw new Error('Server did not return report ID'); diff --git a/lib/utils/reports-service.js b/lib/utils/reports-service.js --- a/lib/utils/reports-service.js +++ b/lib/utils/reports-service.js @@ -1,10 +1,12 @@ // @flow import { fetchWithTimeout } from './fetch-utils.js'; +import { createDefaultHTTPRequestHeaders } from './services-utils.js'; import { reportsServiceURL, sendReportEndpoint, } from '../facts/reports-service.js'; +import type { AuthMetadata } from '../shared/identity-client-context.js'; import type { ReportsServiceSendReportsRequest, ReportsServiceSendReportsResponse, @@ -16,6 +18,7 @@ async function sendReports( reports: ReportsServiceSendReportsRequest, + authMetadata?: ?AuthMetadata, ): Promise { const reportsArray: $ReadOnlyArray = Array.isArray(reports) ? reports : [reports]; @@ -31,10 +34,15 @@ }, ); const url = `${reportsServiceURL}${sendReportEndpoint.path}`; + const defaultHeaders = + authMetadata?.userID && authMetadata?.accessToken && authMetadata?.deviceID + ? createDefaultHTTPRequestHeaders(authMetadata) + : {}; const response = await fetchWithTimeout(url, { method: sendReportEndpoint.method, body: JSON.stringify(requestBody), headers: { + ...defaultHeaders, 'Content-Type': 'application/json', }, timeout: REQUEST_TIMEOUT,