async getReportId()

in vscode/qodana/src/core/cloud/user.ts [57:91]


    async getReportId(projectId: string): Promise<string | undefined> {
        if (!isValidString(projectId)) {
            telemetry.errorReceived('#getReportId invalid project id');
            vscode.window.showErrorMessage(projectIdIsNotValid(projectId));
            return undefined;
        }
        let token = await this.tokenRetriever();
        // get report id from the server
        let pagination = {
            offset: 0,
            limit: 1,
            states: ''
        };
        pagination['states'] = 'UPLOADED,PROCESSED,PINNED';
        let host = await this.environment.getBackendUrlForVersion(this.version);
        const config = {
            url: (new URL(`${host}/projects/${projectId}/timeline`)).toString(),
            method: 'get',
            headers: getHeaders(token),
            data: pagination
        };
        let res = await axios(config);
        if (!res.data) {
            vscode.window.showErrorMessage(failedToObtainData(projectId));
            telemetry.errorReceived('#getReportId no data');
            return undefined;
        }
        let timeline = res.data as PaginatedResponse<QodanaCloudReportResponse>;
        if (!timeline.items || timeline.items.length === 0) {
            vscode.window.showInformationMessage(noReportsFound(projectId));
            telemetry.errorReceived('#getReportId no reports');
            return undefined;
        }
        return timeline.items[0].reportId;
    }