export function makeActiveRequestParameters()

in src/pages/Home/Home.utils.ts [8:41]


export function makeActiveRequestParameters(params: Record<string, string>): Record<string, string> {
  const { timerange_start, timerange_end, ...rest } = params;
  let newParams = rest;
  // We want to remove grouping from request in some cases
  // 1) When grouping is flow_id and only 1 flow_id filter is active, we want to show all runs of this group
  // 2) When grouping is user and only 1 user filter is active, we want to show all runs of this group
  if (newParams._group) {
    if (newParams._group === 'flow_id' && hasOne(newParams.flow_id)) {
      newParams = omit(['_group'], newParams);
    } else if (newParams._group === 'user' && hasOne(newParams.user)) {
      newParams = omit(['_group'], newParams);
    }
  }

  if (hasOne(newParams._order) && (newParams._order.indexOf('flow_id') > -1 || newParams._order.indexOf('user') > -1)) {
    newParams._order = `${newParams._order},ts_epoch`;
  }

  newParams._group_limit = String(parseInt(newParams._group_limit) + 1);

  if (newParams.status && newParams.status.split(',').length === 3) {
    delete newParams.status;
  }
  // start time parameter will be converted to greater than or equal ts_epoch
  if (timerange_start) {
    newParams['ts_epoch:ge'] = timerange_start;
  }
  // end time parameter will be converted to lesser than or equal ts_epoch
  if (timerange_end) {
    newParams['ts_epoch:le'] = timerange_end;
  }

  return newParams;
}