import 'package:http/http.dart';
import 'dart:convert';
void main() {
requestDataAsync("Dra. Patrícia Gomes");
}
Future requestDataAsync(String veterinario) async {
print("Iniciando requisição.........");
String url =
"https://raw.githubusercontent.com/alura-cursos/dart_assincronismo_api/aula05/.json/vet.json";
try {
Response response = await get(Uri.parse(url));
if (response.statusCode == 200) {
List<dynamic> accounts = jsonDecode(response.body);
// Filtra todas as consultas da veterinária informada
List<Map<String, dynamic>> consultas = accounts
.where((element) => element["veterinarian"] == veterinario)
.cast<Map<String, dynamic>>()
.toList();
print("Resposta recebida da API.........");
if (consultas.isNotEmpty) {
print("Foram encontradas ${consultas.length} consultas para $veterinario:\n");
for (var consulta in consultas) {
print("Data: ${consulta["appointment"]}");
print("Pet: ${consulta["pet_name"]}");
print("-----------------------------");
}
} else {
print("Nenhuma consulta encontrada para '$veterinario'.");
}
} else {
print("Erro na requisição. Código HTTP: ${response.statusCode}");
}
} catch (e) {
print("Erro no método async/await: $e");
}
print("Fim da função async/await.\n");
}
Optei por esse exercício pelo maior grau de complexidade, pois tem que filtrar pelo nome do profissional e devolver todas as consultas a ele relacionadas, e assim testar o que foi passado como ensinamento e procurando melhorar, os conhecimentos