getConfig method

Future<void> getConfig({
  1. required String profileName,
  2. List<String>? pluginNames,
  3. List<DataWedgeProcessPluginRequest>? processPlugins,
  4. bool includeAppList = false,
  5. bool includeDataCapturePlus = false,
  6. bool includeEnterpriseKeyboard = false,
  7. String? scannerSelectionByIdentifier,
  8. String? commandTag,
  9. bool requestResult = true,
})

Retrieves the configuration of an existing DataWedge profile.

profileName is the name of the profile to retrieve. pluginNames optionally specifies which plugins to retrieve config for. processPlugins optionally specifies process plugins to include. includeAppList when true, includes the app association list. includeDataCapturePlus when true, includes DataCapture Plus config. includeEnterpriseKeyboard when true, includes Enterprise Keyboard config. scannerSelectionByIdentifier optionally filter by scanner identifier.

The result is delivered as a command result event on the events stream.

Implementation

Future<void> getConfig({
  required String profileName,
  List<String>? pluginNames,
  List<DataWedgeProcessPluginRequest>? processPlugins,
  bool includeAppList = false,
  bool includeDataCapturePlus = false,
  bool includeEnterpriseKeyboard = false,
  String? scannerSelectionByIdentifier,
  String? commandTag,
  bool requestResult = true,
}) {
  final Map<String, dynamic> value = <String, dynamic>{
    DataWedgeApi.profileNameKey: profileName,
  };

  if ((pluginNames != null && pluginNames.isNotEmpty) ||
      (processPlugins != null && processPlugins.isNotEmpty)) {
    final Map<String, dynamic> pluginConfig = <String, dynamic>{};

    if (pluginNames != null && pluginNames.isNotEmpty) {
      pluginConfig[DataWedgeApi.pluginNameKey] =
          pluginNames.length == 1 ? pluginNames.first : pluginNames;
    }

    if (processPlugins != null && processPlugins.isNotEmpty) {
      pluginConfig[DataWedgeApi.processPluginNameKey] =
          processPlugins.map<Map<String, dynamic>>((
        DataWedgeProcessPluginRequest processPlugin,
      ) {
        return processPlugin.toMap();
      }).toList();
    }

    value[DataWedgeApi.pluginConfigKey] = pluginConfig;
  }

  if (includeAppList) {
    value[DataWedgeApi.appListKey] = '';
  }
  if (includeDataCapturePlus) {
    value[DataWedgePluginName.dcp] = '';
  }
  if (includeEnterpriseKeyboard) {
    value[DataWedgePluginName.ekb] = '';
  }
  if (scannerSelectionByIdentifier != null &&
      scannerSelectionByIdentifier.isNotEmpty) {
    value[DataWedgeApi.scannerSelectionByIdentifier] =
        scannerSelectionByIdentifier;
  }

  return sendCommandBundle(
    command: DataWedgeApi.getConfig,
    value: value,
    commandTag: commandTag ?? 'GET_CONFIG_$profileName',
    requestResult: requestResult,
  );
}