HttpClientLink constructor

HttpClientLink(
  1. String? _conn,
  2. String dsIdPrefix,
  3. PrivateKey privateKey, {
  4. NodeProvider? nodeProvider,
  5. bool isRequester = true,
  6. bool isResponder = true,
  7. Requester? overrideRequester,
  8. Responder? overrideResponder,
  9. bool strictTls = false,
  10. String? home,
  11. String? token,
  12. Map? linkData,
  13. List? formats,
})

Implementation

HttpClientLink(
  this._conn,
  String dsIdPrefix,
  PrivateKey privateKey, {
  NodeProvider? nodeProvider,
  bool isRequester = true,
  bool isResponder = true,
  Requester? overrideRequester,
  Responder? overrideResponder,
  this.strictTls = false,
  this.home,
  this.token,
  this.linkData,
  List? formats,
}) : privateKey = privateKey,
     dsId = '${Path.escapeName(dsIdPrefix)}${privateKey.publicKey.qHash64}' {
  if (isRequester) {
    if (overrideRequester != null) {
      requester = overrideRequester;
    } else {
      requester = Requester();
    }
  }

  if (formats == null &&
      const String.fromEnvironment('dsa.codec.formats') != '') {
    var formatString = const String.fromEnvironment('dsa.codec.formats');
    formats = formatString.split(',');
  }

  if (formats != null) {
    this.formats = formats;
  }

  if (isResponder) {
    if (overrideResponder != null) {
      responder = overrideResponder;
    } else if (nodeProvider != null) {
      responder = Responder(nodeProvider);
    }
  }

  if (token != null && token!.length > 16) {
    // pre-generate tokenHash
    var tokenId = token!.substring(0, 16);
    var hashStr = CryptoProvider.sha256(toUTF8('$dsId$token'));
    tokenHash = '&token=$tokenId$hashStr';
  }
}