create static method

EventClient<BaseAdapter> create({
  1. String? apiDomain,
  2. Map<String, dynamic>? config,
  3. BaseAdapter? customAdapter,
  4. required String tenantId,
  5. required String apiKey,
})

Implementation

static EventClient<BaseAdapter> create(
    {String? apiDomain,
    Map<String, dynamic>? config,
    BaseAdapter? customAdapter,
    required String tenantId,
    required String apiKey}) {
  late EventClient eventClient = EventClient(null);

  initUserAgentState().then((value) {
    getUserTrackingBasicInfo(value)
        .then((result) => eventClient.setBasicInfo(result))
        .catchError((error) {
      // Handle error if necessary
    });
  });

  if (tenantId == '') {
    throw Exception(['tenantId must not be empty']);
  }

  if (apiKey == '') {
    throw Exception(['apiKey must not be empty']);
  }

  if (customAdapter != null) {
    eventClient.addAdapter(customAdapter);
  } else {
    eventClient.addAdapter(OpusAnalytic());
    if (config != null) {
      eventClient.setConfig(config);
    }

    if (apiDomain != null) {
      eventClient.setApiDomain(apiDomain);
    }
  }

  eventClient.setTenantId(tenantId);
  eventClient.setApiKey(apiKey);

  return eventClient;
}