details method
Future<PlaceDetailsResponse>
details({
- required String placeId,
- PlaceDetailsRequestOptions? options,
Implementation
Future<PlaceDetailsResponse> details({
required String placeId,
PlaceDetailsRequestOptions? options,
}) async {
if (placeId == "") {
throw ArgumentError.value(placeId, "placeId cannot be empty");
}
final requestURL = Uri.parse(
"https://maps.googleapis.com/maps/api/place/details/json?place_id=$placeId${options ?? ""}&key=$apiKey");
// Making the request
final response = await client.get(requestURL);
if (response.statusCode == 200) {
final placeDetailsResponseMap =
json.decode(response.body) as Map<String, dynamic>;
final placeDetailsResponse =
PlaceDetailsResponse.fromJson(placeDetailsResponseMap);
if (placeDetailsResponse.status != PlacesDetailsStatus.OK) {
throw Exception(
"${handlePlacesDetailsStatus(placeDetailsResponse.status)} ($requestURL)");
}
return placeDetailsResponse;
} else {
throw const HttpException("Http Places details API request failed");
}
}