genericParseResponseAsList<DataTypeGeneric extends Jsonable<Object>? > method
Future<CloudflareHTTPResponse<List<DataTypeGeneric> > >
genericParseResponseAsList<DataTypeGeneric extends Jsonable<Object>? >(})
inherited
Implementation
Future<CloudflareHTTPResponse<List<DataTypeGeneric>>>
genericParseResponseAsList<DataTypeGeneric extends Jsonable?>(
Future futureResponse,
{DataTypeGeneric? dataType,
bool parseCloudflareResponse = true}) async {
CloudflareHTTPResponse response = await getSaveResponse(futureResponse,
parseCloudflareResponse: parseCloudflareResponse);
try {
List<DataTypeGeneric>? dataList;
dynamic body = response.body;
if (response.body is CloudflareResponse) {
body = response.body?.result;
Pagination? pagination =
(response.body as CloudflareResponse).paginationInfo;
if (pagination != null) {
response.base.headers.addAll({
Pagination.countHeader: '${pagination.count}',
Pagination.totalCountHeader: '${pagination.totalCount}',
});
}
}
if (body is Map) {
for (dynamic value in body.values) {
if (value is List<dynamic>) {
body = value;
break;
}
}
}
if (body is List<DataTypeGeneric>) {
dataList = body;
} else if (dataType is Jsonable) {
if (body is List<dynamic>) {
dataList = dataType.fromJsonList(body) as List<DataTypeGeneric>?;
} else if (body is String) {
dataList = dataType.fromJsonString(body) as List<DataTypeGeneric>?;
}
}
return CloudflareHTTPResponse<List<DataTypeGeneric>>(
response.base, dataList,
error: response.error);
} catch (e) {
String message = e.toString();
print(e);
return CloudflareHTTPResponse<List<DataTypeGeneric>>(
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,
),
null,
error: message);
}
}