getURL method

String getURL()

Implementation

String getURL() {
  var queryPairs = <String>[];

  for (var entry in _parameters.entries) {
    var k = Uri.encodeComponent(entry.key);
    var v = entry.value;

    String encodedValue;

    if (k.endsWith('64')) {
      encodedValue = _encodeBase64(v);
    } else {
      encodedValue = Uri.encodeComponent(v);
    }
    queryPairs.add('$k=$encodedValue');
  }

  var query = queryPairs.join('&');

  var decodedPath = Uri.decodeComponent(_path.substring(1));
  if (decodedPath.startsWith('http://') ||
      decodedPath.startsWith('https://')) {
    _path = '/${Uri.encodeComponent(decodedPath)}';
  }

  if (isNotBlank(_signKey)) {
    var delim = query == '' ? '' : '?';
    var toSign = _signKey! + _path + delim + query;
    var signature = md5.convert(utf8.encode(toSign)).toString();

    if (query.isNotEmpty) {
      query += '&s=$signature';
    } else {
      query = 's=$signature';
    }

    return buildURL(_scheme, _domain, _path, query);
  }

  return buildURL(_scheme, _domain, _path, query);
}