0
respostas

Agendando consultas para uma clínica veterinária

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

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora