in packages/web-api/src/converters/scan-response-converter.ts [66:109]
private createCompletedScanResponse(
baseUrl: string,
apiVersion: string,
pageScanResult: OnDemandPageScanResult,
websiteScanResult: WebsiteScanResult,
): ScanResultResponse {
const scanResultResponse: ScanResultResponse = {
scanId: pageScanResult.id,
url: pageScanResult.url,
scanResult: {
state: pageScanResult.scanResult.state,
issueCount: pageScanResult.scanResult.issueCount,
},
reports: this.getScanReports(baseUrl, apiVersion, pageScanResult),
run: {
state: pageScanResult.run.state,
timestamp: pageScanResult.run.timestamp,
pageResponseCode: pageScanResult.run.pageResponseCode,
pageTitle: pageScanResult.run.pageTitle,
},
...this.getRunCompleteNotificationResponse(pageScanResult.notification),
...this.getDeepScanResult(websiteScanResult),
};
if (pageScanResult.scannedUrl !== undefined) {
scanResultResponse.scannedUrl = pageScanResult.scannedUrl;
}
if (scanResultResponse.deepScanResult !== undefined) {
if (scanResultResponse.deepScanResult.every((scanResult) => scanResult.scanRunState === 'failed')) {
scanResultResponse.run.state = 'failed';
} else if (
scanResultResponse.deepScanResult.every(
(scanResult) => scanResult.scanRunState === 'completed' || scanResult.scanRunState === 'failed',
)
) {
scanResultResponse.run.state = 'completed';
} else {
scanResultResponse.run.state = 'pending';
}
}
return scanResultResponse;
}