$httpGet method

Future<Map<String, dynamic>> $httpGet(
  1. String url, {
  2. Map<String, dynamic>? query,
})

Implementation

Future<Map<String, dynamic>> $httpGet(
  String url, {
  Map<String, dynamic /*String|Iterable<String>*/ >? query,
}) async {
  final now = clock.now();
  if (_queueGet.isNotEmpty) {
    if (now.difference(_queueGet.last) < const Duration(milliseconds: 100)) {
      log('Осторожно! Слишком частые запросы...', level: Level.SEVERE.value);
    } else if (now.difference(_queueGet.last) <
        const Duration(milliseconds: 200)) {
      log('Осторожно! Очень частые запросы...', level: Level.WARNING.value);
    } else if (now.difference(_queueGet.last) <
        const Duration(milliseconds: 300)) {
      log('Осторожно! Частые запросы...', level: Level.INFO.value);
    }
  }
  _queueGet.add(now);
  while (_queueGet.length > 5) {
    _queueGet.removeFirst();
  }
  if (url.startsWith('/')) url = url.substring(1);
  var uri = $hostUri.resolve(url);
  if (query != null) {
    uri = uri.replace(queryParameters: query);
  }
  final response = await _httpClient.get(uri);
  return _getBodyJson(response);
}