report_definition: backendToUiReportDefinition()

in dashboards-reports/server/routes/utils/converters/backendToUi.ts [173:273]


          report_definition: backendToUiReportDefinition(
            backendReportDefinitionDetails,
            serverBasePath
          ),
        },
      };
    }
  );
  return res;
};

const getVisualReportCoreParams = (
  fileFormat: BACKEND_REPORT_FORMAT,
  header: string = '',
  footer: string = '',
  duration: string,
  baseUrl: string,
  origin: string
): VisualReportSchemaType => {
  let res: VisualReportSchemaType = {
    base_url: baseUrl,
    report_format: <FORMAT.pdf | FORMAT.png>getUiReportFormat(fileFormat),
    header: header,
    footer: footer,
    time_duration: duration,
    origin: origin,
  };
  return res;
};

// queryUrl = baseUrl + time range
const getUiQueryUrl = (
  baseUrl: string,
  beginTimeMs: number,
  endTimeMs: number,
  tenant?: string
) => {
  const timeFrom = moment(beginTimeMs).toISOString();
  const timeTo = moment(endTimeMs).toISOString();
  let queryUrl = `${baseUrl}?_g=(time:(from:'${timeFrom}',to:'${timeTo}'))`;
  if (tenant !== undefined) {
    if (tenant === '') {
      tenant = 'global';
    } else if (tenant === '__user__') {
      tenant = 'private';
    }
    queryUrl = addTenantToURL(queryUrl, tenant);
  }

  return queryUrl;
};

const getBaseUrl = (sourceType: BACKEND_REPORT_SOURCE, sourceId: string) => {
  //TODO: AES domain has different prefix, need figure out a general solution
  const baseUrl = `${URL_PREFIX_DICT[sourceType]}${sourceId}`;
  return baseUrl;
};

const getDataReportCoreParams = (
  limit: number = DEFAULT_MAX_SIZE,
  sourceId: string,
  fileFormat: BACKEND_REPORT_FORMAT,
  duration: string,
  baseUrl: string,
  origin: string
): DataReportSchemaType => {
  let res: DataReportSchemaType = {
    base_url: baseUrl,
    report_format: <FORMAT.csv>getUiReportFormat(fileFormat),
    limit: limit,
    time_duration: duration,
    saved_search_id: sourceId,
    origin: origin,
  };
  return res;
};

const getUiScheduleParams = (
  schedule: CronType | IntervalType | undefined,
  createdTimeMs: number,
  isEnabled: boolean
) => {
  let res = {
    trigger_params: {
      enabled_time: createdTimeMs,
      enabled: isEnabled,
      schedule_type:
        schedule && 'cron' in schedule
          ? SCHEDULE_TYPE.cron
          : SCHEDULE_TYPE.recurring,
      schedule: schedule,
    },
  };
  return res;
};

const getUiTriggerType = (backendField: string): TRIGGER_TYPE => {
  let res: any;
  for (let [ui, backendFieldList] of Object.entries(TRIGGER_TYPE_DICT)) {
    for (let item of backendFieldList) {
      if (item === backendField) {