getDoableExams method

Future<List<DoableExam>> getDoableExams(
  1. String studentID
)

Implementation

Future<List<DoableExam>> getDoableExams(String studentID) async {
  try {
    final url = Uri.parse(
        '$endpoint/studente/$studentID/insegnamentisostenibili?ingresso=$token');

    final response = await http.get(
      url,
      headers: {'Accept': 'application/json'},
    );

    if (response.statusCode == 200) {
      final Map<String, dynamic> data = jsonDecode(response.body);

      if (data['ritorno'] == null || data['ritorno']['esami'] == null) {
        throw Exception('Nessun dato trovato nella risposta.');
      }

      final List<dynamic> doableExamsJson = data['ritorno']['esami'] as List;
      return doableExamsJson.map((e) => DoableExam.fromJson(e)).toList();
    } else {
      throw Exception(
          'Errore nella richiesta: ${response.statusCode} - ${response.reasonPhrase}');
    }
  } catch (e) {
    throw Exception('Errore durante il recupero degli esami prenotabili: $e');
  }
}