settingsFor method

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

Implementation

Future<HightouchAPISettings?> 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 HightouchAPISettings.fromJson(jsonMap);
  } catch (error) {
    reportInternalError(NetworkUnknown(error.toString()), analytics: _analytics.target);
    return null;
  }
}