Client constructor

Client(
  1. ClientConfig config,
  2. HTTPClient httpClient
)

Implementation

Client(ClientConfig config, HTTPClient httpClient) {
  final String? endpoint = config.endpoint_;

  if ((endpoint == null) || endpoint.isEmpty) {
    throw ArgumentError("Missing Endpoint configuration");
  }

  final String? apiKey = config.apiKey_;
  if ((apiKey == null) || apiKey.isEmpty) {
    throw ArgumentError("Missing APIKey configuration");
  }

  final String? application = config.application_;
  if ((application == null) || application.isEmpty) {
    throw ArgumentError("Missing Application configuration");
  }

  final String? environment = config.environment_;
  if ((environment == null) || environment.isEmpty) {
    throw ArgumentError("Missing Environment configuration");
  }

  url_ = "$endpoint/context";
  httpClient_ = httpClient;
  deserializer_ = config.deserializer_;
  serializer_ = config.serializer_;

  deserializer_ ??= DefaultContextDataDeserializer();

  serializer_ ??= DefaultContextEventSerializer();

  headers_ = {
    "X-API-Key": apiKey,
    "X-Application": application,
    "X-Environment": environment,
    "X-Application-Version": "0",
    "X-Agent": "absmartly-dart-sdk",
  };

  query_ = {
    "application": application,
    "environment": environment,
  };
}