handleRequest<ResultType, Item> method

Future<ApiResponse<ResultType, Item>> handleRequest<ResultType, Item>(
  1. ApiRequest<ResultType, Item> request, {
  2. int timeout = 50,
  3. bool retry = false,
})

makes a network request

Implementation

Future<ApiResponse<ResultType, Item>> handleRequest<ResultType, Item>(
    ApiRequest<ResultType, Item> request,
    {int timeout = 50,
    bool retry = false}) async {
  ApiResponse<ResultType, Item> response;
  try {
    response = await provider
        .send<ResultType, Item>(request)
        .timeout(Duration(seconds: timeout), onTimeout: () {
      throw (TimeoutException('Connection timed out'));
    });
  } catch (e) {
    if (kDebugMode) print(' error in request ');
    if (kDebugMode) print(e.toString());
    response = ApiResponse<ResultType, Item>(
        bodyString: null,
        request: request,
        error: (e is ApiError)
            ? e
            : formatErrorMessage(e, defaultErrorMessage ?? ''),
        headers: {},
        statusCode: 200);
  }
  return response;
}