fetchPackages method
Fetch categories for multiple packages
Implementation
Future<List<PackageCategory>> fetchPackages(
List<String> packageNames,
) async {
if (packageNames.isEmpty) return <PackageCategory>[];
try {
final String packagesParam = packageNames.join(',');
final String url = '$baseUrl/category?packages=$packagesParam';
final http.Response response = await http.get(Uri.parse(url));
if (response.statusCode != 200) return <PackageCategory>[];
final Map<String, dynamic> json = Map<String, dynamic>.from(
jsonDecode(response.body) ?? <String, dynamic>{});
final List<dynamic> packages =
List<dynamic>.from(json['packages'] ?? <dynamic>[]);
return packages
.where((dynamic p) => p is Map)
.map((dynamic p) => PackageCategory.fromJson(
Map<String, dynamic>.from(p as Map? ?? <String, dynamic>{})))
.toList();
} catch (e) {
return <PackageCategory>[];
}
}