genericParseResponseAsList<DataTypeGeneric extends Jsonable<Object>? > method
Future<GoogleHTTPResponse<List<DataTypeGeneric> > >
genericParseResponseAsList<DataTypeGeneric extends Jsonable<Object>? >(
- Future futureResponse, {
- DataTypeGeneric? dataType,
Implementation
Future<GoogleHTTPResponse<List<DataTypeGeneric>>>
genericParseResponseAsList<DataTypeGeneric extends Jsonable?>(
Future futureResponse,
{DataTypeGeneric? dataType}) async {
GoogleHTTPResponse response = await getSaveResponse(futureResponse);
try {
List<DataTypeGeneric>? dataList;
dynamic body = response.body;
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 GoogleHTTPResponse<List<DataTypeGeneric>>(
response.base,
dataList,
error: response.error,
extraData: response.extraData,
);
} catch (e) {
String message = e.toString();
print(e);
return GoogleHTTPResponse<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: GoogleErrorResponse(
error: ErrorInfo(
message: message,
),
),
);
}
}