lookUp method

Future<Map<String, dynamic>> lookUp(
  1. String ip, [
  2. int page = 1
])

Query IP2Location.io hosted domains data for a given IP.

Implementation

Future<Map<String, dynamic>> lookUp(String ip, [int page = 1]) async {
  final uri = Uri.parse(_baseUrl).replace(
    queryParameters: {
      'format': _format,
      'source': _configuration.source,
      'source_version': _configuration.sourceVersion,
      'key': Uri.encodeQueryComponent(_configuration.apiKey),
      'ip': Uri.encodeQueryComponent(ip),
      'page': page.toString(),
    },
  );

  final response = await http.get(uri);

  if (response.statusCode == 200) {
    return jsonDecode(response.body) as Map<String, dynamic>;
  } else if (response.statusCode == 400 || response.statusCode == 401) {
    final body = jsonDecode(response.body);
    if (body is Map && body.containsKey('error')) {
      final error = body['error'];
      if (error is Map && error.containsKey('error_message')) {
        throw Exception(error['error_message']);
      }
    }
  }

  throw Exception(_error);
}