data: fetchRequest()

in source/frontend/src/components/Drawer/Actions/QueryBuilder/QueryBuilderDialog.js [180:282]


        data: fetchRequest(resourceType, resourceCount),
      },
      processor: processFilterResults,
    };
    const response = await requestWrapper(sendPostRequest, query);
    setNodeData(response && !response.error ? response.body : []);
  };

  const classes = useStyles();

  const getResourceTypes = (resources) => {
    const items = [];
    resources.map((filter) =>
      filter.metaData.resourceTypes.map((type) =>
        items.push({ value: Object.keys(type)[0], label: Object.keys(type)[0] })
      )
    );
    return items;
  };

  const body2 = body2Classes();

  return (
    <Dialog
      open={true}
      onClose={toggleQueryBuilderModal}
      maxWidth={'xl'}
      scroll={'paper'}
      disableBackdropClick={true}
      disableEscapeKeyDown={true}
      classes={{ paper: classes.paper }}
      aria-labelledby='form-dialog-title'>
      <DialogTitle onClose={() => toggleQueryBuilderModal()}>
        Query Builder
      </DialogTitle>
      <DialogContent className={classes.content}>
        <Typography className={body2.body2} variant='body2' gutterBottom>
          You can select a resource type and optionally specify the number of
          connections you want it to have. So, if you want to find any orphan
          EBS Volumes you can select AWS::EC2::Volume and 0 Connections.
        </Typography>
        <div className={classes.tableDiv}>
          <div className={classes.tableCellDiv}>
            <FormAutoComplete
              onSelected={(event, input) => setResourceType(input.value)}
              label='Select Resource Type'
              description='Choose the resource type you would like to use in your query'
              width='95%'
              margin='0 1% 0 0'
              options={getResourceTypes(resources)}
              multiSelect={false}
            />
          </div>
          <div className={classes.tableCellDiv}>
            <FormField
              onInput={(input) => setResourceCount(input.target.value)}
              label='Connections'
              description='Enter the number of connections you want the resource to have'
              width='95%'
              margin='0 1% 0 0'
              type='number'
            />
          </div>
          <div className={classes.tableCellButton}>
            <Button
              disabled={resourceType === undefined}
              className={classes.runbutton}
              onClick={executeQuery}>
              Run
            </Button>
          </div>
        </div>
        {resourceType && !nodeData && (
          <Typography className={body2.body2} variant='body2' gutterBottom>
            {`Show ${resourceType} that have ${
              resourceCount ? resourceCount : ' any number of '
            } ${resourceCount === 1 ? 'connection' : 'connections'}`}
          </Typography>
        )}
        <div className='resultTable'>
          <ResourceTable
            results={nodeData.filter(
              (item) => !item.edge && item.data.type === 'resource'
            )}
            selectedNodes={(nodes) => setSelectedNodes(nodes)}
            exportCSV={false}
          />
        </div>
      </DialogContent>
      <DialogActions className={classes.actions}>
        <Button
          className={classes.clearButton}
          onClick={toggleQueryBuilderModal}>
          Close
        </Button>

        {nodeData && nodeData.length > 0 && (
          <Button
            disabled={selectedNodes === undefined}
            className={classes.button}
            onClick={() => {
              toggleQueryBuilderModal();
              dispatch({