settingsFor method

Future<SegmentAPISettings?> settingsFor(
  1. String writeKey
)

Implementation

Future<SegmentAPISettings?> settingsFor(String writeKey) async {
  final settingsURL = _url(
      _analytics.target!.state.configuration.state.cdnHost,
      "/projects/$writeKey/settings");
  final urlRequest = _configuredRequest(settingsURL, "GET");

  try {
    final response = await urlRequest.send();

    if (response.statusCode > 300) {
      reportInternalError(NetworkUnexpectedHTTPCode(response.statusCode),
          analytics: _analytics.target);
      return null;
    }
    final data = await response.stream.toBytes();
    const decoder = JsonDecoder();
    final jsonMap =
        decoder.convert(utf8.decode(data)) as Map<String, dynamic>;
    return SegmentAPISettings.fromJson(jsonMap);
  } catch (error) {
    reportInternalError(NetworkUnknown(error.toString()),
        analytics: _analytics.target);
    return null;
  }
}