Changeset View
Changeset View
Standalone View
Standalone View
lib/actions/report-actions.js
Show All 13 Lines | |||||
const callServerEndpointOptions = { timeout: 60000 }; | const callServerEndpointOptions = { timeout: 60000 }; | ||||
const sendReport = | const sendReport = | ||||
( | ( | ||||
callServerEndpoint: CallServerEndpoint, | callServerEndpoint: CallServerEndpoint, | ||||
): (( | ): (( | ||||
request: ClientReportCreationRequest, | request: ClientReportCreationRequest, | ||||
) => Promise<ReportCreationResponse>) => | ) => Promise<ReportCreationResponse>) => | ||||
async request => { | async request => { | ||||
const { id, ...report } = request; | |||||
const response = await callServerEndpoint( | const response = await callServerEndpoint( | ||||
'create_report', | 'create_report', | ||||
request, | report, | ||||
callServerEndpointOptions, | callServerEndpointOptions, | ||||
); | ); | ||||
return { id: response.id }; | return { id: response.id }; | ||||
}; | }; | ||||
const sendReportsActionTypes = Object.freeze({ | const sendReportsActionTypes = Object.freeze({ | ||||
started: 'SEND_REPORTS_STARTED', | started: 'SEND_REPORTS_STARTED', | ||||
success: 'SEND_REPORTS_SUCCESS', | success: 'SEND_REPORTS_SUCCESS', | ||||
failed: 'SEND_REPORTS_FAILED', | failed: 'SEND_REPORTS_FAILED', | ||||
}); | }); | ||||
const sendReports = | const sendReports = | ||||
( | ( | ||||
callServerEndpoint: CallServerEndpoint, | callServerEndpoint: CallServerEndpoint, | ||||
): (( | ): (( | ||||
reports: $ReadOnlyArray<ClientReportCreationRequest>, | reports: $ReadOnlyArray<ClientReportCreationRequest>, | ||||
) => Promise<void>) => | ) => Promise<void>) => | ||||
async reports => { | async clientReports => { | ||||
const reports = clientReports.map(clientReport => { | |||||
const { id, ...report } = clientReport; | |||||
return report; | |||||
}); | |||||
await callServerEndpoint( | await callServerEndpoint( | ||||
'create_reports', | 'create_reports', | ||||
{ reports }, | { reports }, | ||||
callServerEndpointOptions, | callServerEndpointOptions, | ||||
); | ); | ||||
}; | }; | ||||
const queueReportsActionType = 'QUEUE_REPORTS'; | const queueReportsActionType = 'QUEUE_REPORTS'; | ||||
export { | export { | ||||
sendReportActionTypes, | sendReportActionTypes, | ||||
sendReport, | sendReport, | ||||
sendReportsActionTypes, | sendReportsActionTypes, | ||||
sendReports, | sendReports, | ||||
queueReportsActionType, | queueReportsActionType, | ||||
}; | }; |