getList<T> method

Future<List<T>> getList<T>(
  1. String endpoint, {
  2. required T fromJson(
    1. Map<String, dynamic>
    ),
  3. Map<String, dynamic>? queryParams,
})

Implementation

Future<List<T>> getList<T>(
  String endpoint, {
  required T Function(Map<String, dynamic>) fromJson,
  Map<String, dynamic>? queryParams,
}) async {
  try {
    final uri = _buildUri(endpoint, queryParams);
    _logRequest('GET', uri);

    final response = await _client.get(uri, headers: _getHeaders());
    _logResponse(response);

    if (response.statusCode >= 200 && response.statusCode < 300) {
      final List<dynamic> dataList = jsonDecode(response.body);
      return dataList
          .map((item) => fromJson(item as Map<String, dynamic>))
          .toList();
    } else {
      throw Exception("Server returned code ${response.statusCode}");
    }
  } catch (e) {
    throw Exception(e.toString());
  }
}