googlePlaceAutoComplete method

  1. @override
Future<NetworkResponse> googlePlaceAutoComplete(
  1. String keyword, {
  2. String? countryCode,
  3. List<String>? types,
  4. String? language,
})
override

Implementation

@override
Future<NetworkResponse> googlePlaceAutoComplete(String keyword,
    {String? countryCode, List<String>? types, String? language}) async {
  return await handleNetworkError(
    proccess: () async {
      var queryParameters = {
        'value': keyword,
        'types': types ?? ['address']
      };
      if (countryCode != null) {
        queryParameters.addAll({
          'country': countryCode,
        });
      }
      if (language != null) {
        queryParameters.addAll({
          'language': language,
        });
      }
      Response response =
          await AppClient(token: await appPrefs.getNormalToken()).get(
              _MyAppEndpoint.googlePlaceAutoComplete(),
              queryParameters: queryParameters);
      if (response.data['status'] == 'OK') {
        return NetworkResponse.fromResponse(response,
            prefix: 'predictions',
            converter: (json) => (json as List<dynamic>)
                .map<AutocompletePrediction>(
                    (i) => AutocompletePrediction.fromJson(i))
                .toList());
      } else {
        return NetworkResponse();
      }
    },
  );
}