genericParseResponse<DataTypeGeneric> method

Future<GoogleHTTPResponse<DataTypeGeneric>> genericParseResponse<DataTypeGeneric>(
  1. Future futureResponse, {
  2. DataTypeGeneric? dataType,
})

Implementation

Future<GoogleHTTPResponse<DataTypeGeneric>>
    genericParseResponse<DataTypeGeneric>(Future futureResponse,
        {DataTypeGeneric? dataType}) async {
  GoogleHTTPResponse response = await getSaveResponse(futureResponse);
  try {
    DataTypeGeneric? dataTypeResult;
    dynamic body = response.body;

    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 GoogleHTTPResponse<DataTypeGeneric>(
      response.base,
      dataTypeResult,
      error: response.error,
      extraData: response.extraData,
    );
  } catch (e) {
    String message = e.toString();
    print(e);
    return GoogleHTTPResponse<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,
        ),
      ),
    );
  }
}