listBreweries static method
List Breweries
Returns a list of breweries.
- byCity - Filter breweries by city.
- byDist - Sort the results by distance from an origin point, using LatLng.
- byName - Filter breweries by name.
- byState - Filter breweries by state. Note: Full state name is required; no abbreviations. For the parameters, you can use underscores or url encoding for spaces.
- byPostal - Filter breweries by postal code. May be filtered by basic (5 digit) postal code or more precisely filtered by postal+4 (9 digit) code. Note: If filtering by postal+4 the search must include either a hyphen or an underscore.
- byType - Filter by type of brewery using BreweryType.
- byPage - The offset or page of breweries to return.
- perPage - Number of breweries to return each call. Note: Default per page is 20. Max per page is 50.
- sortFields - Sort the results by one or more fields using SortFieldType.
- sortOrder - Sort the results by ascending or descending order using Sort
Implementation
static Future<List<Brewery>> listBreweries({
String? byCity,
LatLng? byDist,
String? byName,
String? byState,
String? byPostal,
BreweryType? byType,
int? byPage,
int? perPage,
List<SortFieldType> sortFields = const [],
Sort? sortOrder,
}) async {
Map<String, dynamic> _queryParameters = returnQueryParameters(
byCity: byCity,
byDist: byDist,
byName: byName,
byState: byState,
byPostal: byPostal,
byType: byType,
byPage: byPage,
perPage: perPage,
sortFields: sortFields,
sortOrder: sortOrder,
);
final uri = Uri.https(
'api.openbrewerydb.org',
'/breweries',
_queryParameters,
);
final response = await http.get(uri);
if (response.statusCode == 200) {
List l = json.decode(response.body);
List<Brewery> b = [];
for (var e in l) {
b.add(Brewery.fromJson(e));
}
return b;
} else {
throw Exception('Failed to load breweries');
}
}