genericParseResponse<DataTypeGeneric> method

Future<CloudflareHTTPResponse<DataTypeGeneric>> genericParseResponse<DataTypeGeneric>(
  1. Future futureResponse, {
  2. DataTypeGeneric? dataType,
  3. bool parseCloudflareResponse = true,
})
inherited

Implementation

Future<CloudflareHTTPResponse<DataTypeGeneric>>
    genericParseResponse<DataTypeGeneric>(Future futureResponse,
        {DataTypeGeneric? dataType,
        bool parseCloudflareResponse = true}) async {
  CloudflareHTTPResponse response = await getSaveResponse(futureResponse,
      parseCloudflareResponse: parseCloudflareResponse);
  try {
    DataTypeGeneric? dataTypeResult;
    dynamic body = response.body;
    if (body is CloudflareResponse) body = response.body?.result;

    if (body is DataTypeGeneric) {
      dataTypeResult = body;
    } else if (dataType is Jsonable) {
      if (body is Map<String, dynamic>) {
        dataTypeResult = dataType.fromJsonMap(body) as DataTypeGeneric?;
      } else if (body is String) {
        dataTypeResult = dataType.fromJsonString(body) as DataTypeGeneric?;
      }
    }
    return CloudflareHTTPResponse<DataTypeGeneric>(
        response.base, dataTypeResult,
        error: response.error);
  } catch (e) {
    String message = e.toString();
    print(e);
    return CloudflareHTTPResponse<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);
  }
}