SearchClient constructor

SearchClient({
  1. required String appId,
  2. required String apiKey,
  3. ClientOptions options = const ClientOptions(),
})

Implementation

SearchClient({
  required String appId,
  required String apiKey,
  this.options = const ClientOptions(),
}) : _retryStrategy = RetryStrategy.create(
        segment:
            AgentSegment(value: "Algoliasearch", version: packageVersion),
        appId: appId,
        apiKey: apiKey,
        requestIdSupport: true,
        options: ClientOptions(
          connectTimeout: Duration(milliseconds: 2000),
          readTimeout: Duration(milliseconds: 5000),
          writeTimeout: Duration(milliseconds: 30000),
          hosts: options.hosts,
          headers: options.headers,
          agentSegments: options.agentSegments,
          logger: options.logger,
          requester: options.requester,
          interceptors: options.interceptors,
          httpClientAdapter: options.httpClientAdapter,
          compression: options.compression,
          requestIdEnabled: options.requestIdEnabled,
        ),
        defaultHosts: () =>
            [
              Host(url: '$appId-dsn.algolia.net', callType: CallType.read),
              Host(url: '$appId.algolia.net', callType: CallType.write),
            ] +
            ([
              Host(url: '$appId-1.algolianet.com'),
              Host(url: '$appId-2.algolianet.com'),
              Host(url: '$appId-3.algolianet.com'),
            ]..shuffle()),
      ) {
  assert(appId.isNotEmpty, '`appId` is missing.');
  assert(apiKey.isNotEmpty, '`apiKey` is missing.');
}