fetchSuggestions method

Future<List<Suggestion>> fetchSuggestions(
  1. String input,
  2. String lang
)

Implementation

Future<List<Suggestion>> fetchSuggestions(String input, String lang) async {
  final request =
      'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input&types=address&language=$lang&key=$apiKey&sessiontoken=$sessionToken';
  final response = await client.get(Uri.parse(request));

  if (response.statusCode == 200) {
    final result = json.decode(response.body);
    if (result['status'] == 'OK') {
      // compose suggestions in a list
      return result['predictions']
          .map<Suggestion>((p) => Suggestion(p['place_id'], p['description']))
          .toList();
    }
    if (result['status'] == 'ZERO_RESULTS') {
      return [];
    }
    throw Exception(result['error_message']);
  } else {
    throw Exception('Failed to fetch suggestion');
  }
}