handleRequest method

Future<List<T>?> handleRequest(
  1. Future<Response> requestFunc()
)

Implementation

Future<List<T>?> handleRequest(
    Future<http.Response> Function() requestFunc) async {
  try {
    final response = await requestFunc();
    if (response.statusCode == 200 || response.statusCode == 201) {
      List<dynamic> jsonResponse = json.decode(response.body);
      return jsonResponse.map((item) => fromJson(item)).toList();
    } else {
      throw Exception('Failed to load data. Status code: ${response.statusCode}');
    }
  } catch (e, st) {
    if (shouldPrintErrors) {
      log('Error: $e');
    }
    if (shouldPrintStackTrace) {
      log('StackTrace: $st');
    }
    return null;
  }
}