Skip to content

Commit 0bbab87

Browse files
authored
Use new API to Generate Reports from Existing Definitions (#213)
1 parent 4c3be6a commit 0bbab87

File tree

4 files changed

+12
-32
lines changed

4 files changed

+12
-32
lines changed

kibana-reports/public/components/main/__tests__/main_utils.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
addReportDefinitionsTableContent,
2323
removeDuplicatePdfFileFormat,
2424
readStreamToFile,
25-
generateReport,
25+
generateReportFromDefinitionId,
2626
generateReportById,
2727
} from '../main_utils';
2828
import {
@@ -114,8 +114,8 @@ describe('main_utils tests', () => {
114114
});
115115

116116
test('test generateReport compile', () => {
117-
const metadata = {};
118-
generateReport(metadata, httpClientMock);
117+
const reportDefinitionId = '1';
118+
generateReportFromDefinitionId(reportDefinitionId, httpClientMock);
119119
});
120120

121121
test('test generateReportById compile', () => {

kibana-reports/public/components/main/main_utils.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,17 +139,16 @@ export const readStreamToFile = async (
139139
document.body.removeChild(link);
140140
};
141141

142-
export const generateReport = async (metadata, httpClient) => {
142+
export const generateReportFromDefinitionId = async (reportDefinitionId, httpClient) => {
143143
let status = false;
144144
let permissionsError = false;
145145
await httpClient
146-
.post('../api/reporting/generateReport', {
147-
body: JSON.stringify(metadata),
146+
.post(`../api/reporting/generateReport/${reportDefinitionId}`, {
148147
headers: {
149148
'Content-Type': 'application/json',
150149
},
151150
})
152-
.then(async (response) => {
151+
.then(async (response: any) => {
153152
// for emailing a report, this API response doesn't have response body
154153
if (response) {
155154
const fileFormat = extractFileFormat(response['filename']);

kibana-reports/public/components/main/report_definition_details/report_definition_details.tsx

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import {
3737
formatEmails,
3838
trimAndRenderAsText,
3939
} from '../report_details/report_details';
40-
import { fileFormatsUpper, generateReport } from '../main_utils';
40+
import { fileFormatsUpper, generateReportFromDefinitionId } from '../main_utils';
4141
import { ReportDefinitionSchemaType } from '../../../../server/model';
4242
import moment from 'moment';
4343
import { converter } from '../../report_definitions/utils';
@@ -463,21 +463,9 @@ export function ReportDefinitionDetails(props) {
463463
};
464464

465465
const generateReportFromDetails = async () => {
466-
let duration =
467-
reportDefinitionRawResponse.report_definition.report_params.core_params
468-
.time_duration;
469-
const fromDate = getRelativeStartDate(duration);
470-
let onDemandDownloadMetadata = {
471-
query_url: `${
472-
reportDefinitionDetails.baseUrl
473-
}?_g=(time:(from:'${fromDate.toISOString()}',to:'${moment().toISOString()}'))`,
474-
time_from: fromDate.valueOf(),
475-
time_to: moment().valueOf(),
476-
report_definition: reportDefinitionRawResponse.report_definition,
477-
};
478466
const { httpClient } = props;
479-
let generateReportSuccess = await generateReport(
480-
onDemandDownloadMetadata,
467+
let generateReportSuccess = await generateReportFromDefinitionId(
468+
reportDefinitionId,
481469
httpClient
482470
);
483471
if (generateReportSuccess.status) {

kibana-reports/public/components/report_definitions/create/create_report_definition.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import {
2727
import { ReportSettings } from '../report_settings';
2828
import { ReportDelivery } from '../delivery';
2929
import { ReportTrigger } from '../report_trigger';
30-
import { generateReport } from '../../main/main_utils';
30+
import { generateReportFromDefinitionId } from '../../main/main_utils';
3131
import { isValidCron } from 'cron-validator';
3232
import { converter } from '../utils';
3333
import moment from 'moment';
@@ -327,15 +327,8 @@ export function CreateReport(props) {
327327
.then(async (resp) => {
328328
//TODO: consider handle the on demand report generation from server side instead
329329
if (metadata.trigger.trigger_type === 'On demand') {
330-
let onDemandDownloadMetadata = {
331-
query_url: `${
332-
metadata.report_params.core_params.base_url
333-
}?_g=(time:(from:'${timeRange.timeFrom.toISOString()}',to:'${timeRange.timeTo.toISOString()}'))`,
334-
time_from: timeRange.timeFrom.valueOf(),
335-
time_to: timeRange.timeTo.valueOf(),
336-
report_definition: metadata,
337-
};
338-
generateReport(onDemandDownloadMetadata, httpClient);
330+
const reportDefinitionId = resp.scheduler_response.reportDefinitionId;
331+
generateReportFromDefinitionId(reportDefinitionId, httpClient);
339332
}
340333
window.location.assign(`opendistro_kibana_reports#/create=success`);
341334
})

0 commit comments

Comments
 (0)