genericParseResponse<GenericDataType extends Jsonable<Object>?> method

Future<Response<GenericDataType>> genericParseResponse<GenericDataType extends Jsonable<Object>?>(
  1. Future<Response> futureResponse,
  2. GenericDataType? dataType
)

Implementation

Future<Response<GenericDataType>>
    genericParseResponse<GenericDataType extends Jsonable?>(
        Future<Response> futureResponse, GenericDataType? dataType) async {
  Response response = await getSaveResponse(futureResponse);
  try {
    if (dataType != null) {
      GenericDataType? dataTypeResult = response.body is String
          ? dataType.fromJsonString(response.body) as GenericDataType?
          : dataType.fromJsonMap(response.body) as GenericDataType?;
      Object? errorTypeResult = parseError(response);
      return Response<GenericDataType>(response.base, dataTypeResult,
          error: errorTypeResult);
    }
  } catch (e) {
    String message = e.toString();
    response = Response(
        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 Response<GenericDataType>(response.base, null,
      error: response.error);
}