private deleteRule()

in labextension/src/components/RuleList.tsx [99:137]


  private deleteRule(rule: string) {
    return async (): Promise<boolean> => {
      const deleteBtn = Dialog.warnButton({ label: 'Delete' });
      const result = await showDialog({
        title: 'Delete Rule?',
        body: `Do you want to delete the rule ${rule}?`,
        buttons: [Dialog.cancelButton(), deleteBtn],
      });

      if (result.button.accept) {
        console.log(`deleting rule ${rule}`);
        const settings = ServerConnection.makeSettings();
        const response = await ServerConnection.makeRequest(
          URLExt.join(settings.baseUrl, 'sagemaker-scheduler', 'schedule', rule),
          { method: 'DELETE' },
          settings,
        );

        if (!response.ok) {
          const error = (await response.json()) as ErrorResponse;
          let errorMessage: string;
          if (error.error) {
            errorMessage = error.error.message;
          } else {
            errorMessage = JSON.stringify(error);
          }
          showDialog({
            title: 'Error deleting schedule',
            body: <p>{errorMessage}</p>,
            buttons: [Dialog.okButton({ label: 'Close' })],
          });
          return;
        }
        this.props.model.refresh();
        return true;
      }
      return false;
    };
  }