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