googlePlaceAutoComplete method

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

Google place

Implementation

@override
Future<NetworkResponse> googlePlaceAutoComplete(String keyword,
    {String? countryCode, List<String>? types}) async {
  bool isDisconnect = await WifiService.isDisconnectWhenCallApi();
  if (isDisconnect) return NetworkResponse.withDisconnect();
  try {
    var queryParameters = {
      'value': keyword,
      'types': types ?? ['address']
    };
    if (countryCode != null) {
      queryParameters.addAll({
        'country': countryCode,
      });
    }
    Response response = await AppClientsWeb(
            requiredToken: true, token: await appPrefs.getNormalToken())
        .get(AppEndpoint.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();
    }
  } on DioError catch (e) {
    return NetworkResponse.withErrorRequest(e);
  } catch (e) {
    return NetworkResponse.withErrorConvert(e);
  }
}