listBreweries static method

Future<List<Brewery>> listBreweries({
  1. String? byCity,
  2. LatLng? byDist,
  3. String? byName,
  4. String? byState,
  5. String? byPostal,
  6. BreweryType? byType,
  7. int? byPage,
  8. int? perPage,
  9. List<SortFieldType> sortFields = const [],
  10. Sort? sortOrder,
})

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');
  }
}