createExternalDataSource static method

DataSource? createExternalDataSource(
  1. List<DataType> dataTypes
)

Create a new external data source

Parameters

  • IN dataTypes List of available data types for this data source. It is mandatory to provide DataType.position within the dataTypes list.

Throws

  • An exception if it fails

Implementation

static DataSource? createExternalDataSource(final List<DataType> dataTypes) {
  final List<int> intList =
      dataTypes.map((final DataType dataType) => dataType.id).toList();
  final String resultString = GemKitPlatform.instance.callCreateObject(
    jsonEncode(<String, Object>{
      'class': 'DataSourceContainer',
      'args': <String, Object>{
        'availableDataType': intList,
        'type': 'external',
      },
    }),
  );
  final dynamic decodedVal = jsonDecode(resultString);

  final int gemApiError = decodedVal['gemApiError'];

  if (GemErrorExtension.isErrorCode(gemApiError)) {
    return null;
  }

  final DataSource retVal = DataSource.init(decodedVal['result']);
  return retVal;
}