private createCompletedScanResponse()

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;
    }