genericParseResponseAsList<DataTypeGeneric extends Jsonable<Object>?> method

Future<EResponse<List<DataTypeGeneric>>> genericParseResponseAsList<DataTypeGeneric extends Jsonable<Object>?>(
  1. Future futureResponse, {
  2. DataTypeGeneric? dataType,
})
inherited

Implementation

Future<EResponse<List<DataTypeGeneric>>>
genericParseResponseAsList<DataTypeGeneric extends Jsonable?>(
    Future futureResponse, {DataTypeGeneric? dataType}) async {
  EResponse response = await getSaveResponse(futureResponse);
  try {
    List<DataTypeGeneric>? dataList;
    if (dataType != null) {
      if(response.body is List<DataTypeGeneric>) {
        dataList = response.body;
      } else
      if(response.body is String) {
        dataList = dataType.fromJsonStringList(response.body) as List<DataTypeGeneric>?;
      } else
      if(response.body is Map) {
        dataList = dataType.fromJsonList(response.body) as List<DataTypeGeneric>?;
      }
    }
    Object? errorTypeResult = parseError(response);
    return EResponse<List<DataTypeGeneric>>(response.base, dataList,
        error: errorTypeResult);
  } catch (e) {
    String message = e.toString();
    response = EResponse(
        http.Response(
          response.body?.toString() ?? '',
          Jsonable.jsonParserError,
          headers: response.base.headers,
          isRedirect: response.base.isRedirect,
          persistentConnection: response.base.persistentConnection,
          reasonPhrase: response.base.reasonPhrase,
          request: response.base.request,
        ),
        response.body,
        error: message);
    print(e);
  }
  return EResponse<List<DataTypeGeneric>>(response.base, null, error: response.error);
}