setAiTools static method

Future<void> setAiTools({
  1. required List<AITool> tools,
})

setAiTools

Set the AI tools for the Gleap widget

Available Platforms

Web, Android, iOS

Implementation

static Future<void> setAiTools({required List<AITool> tools}) async {
  if (!kIsWeb && !io.Platform.isAndroid && !io.Platform.isIOS) {
    debugPrint(
      'setAiTools is not available for current operating system',
    );
    return;
  }

  final List<Map<String, dynamic>> toolsList;

  if (kIsWeb) {
    toolsList = tools.map((AITool tool) {
      final toolJson = tool.toJson();
      final parameters = toolJson['parameters'].map((param) {
        final Map<String, dynamic> paramAsMap =
            Map<String, dynamic>.from(param);
        if (paramAsMap.containsKey('enums')) {
          // Rename 'enums' to 'enum' for web
          if (paramAsMap['enums'] != null) {
            paramAsMap['enum'] = paramAsMap['enums'];
          }
          paramAsMap.remove('enums');
        }
        return paramAsMap;
      }).toList();
      toolJson['parameters'] = parameters;
      return toolJson;
    }).toList();
  } else {
    toolsList = tools.map((AITool tool) => tool.toJson()).toList();
  }

  await _channel.invokeMethod('setAiTools', {
    'tools': toolsList,
  });
}