requestWithDataResolver<T> method

Future<Response<T>> requestWithDataResolver<T>(
  1. ApiHelperPathItem pathItem, {
  2. dynamic dataResolver(
    1. dynamic
    )?,
})

Implementation

Future<ResponseHelper.Response<T>> requestWithDataResolver<T>(
    ApiHelperPathItem pathItem,
    {dynamic Function(dynamic)? dataResolver}) async {
  try {
    var response = await _sendRequest(pathItem);
    if (!response.isSuccess)
      return ResponseHelper.Response.error(response.errorMessage);

    if (responseResolver != null) {
      response = responseResolver!(response.value);

      if (response.isSuccess == false) {
        return ResponseHelper.Response.error(response.errorMessage);
      }

      if (dataResolver != null)
        return ResponseHelper.Response<T>.success(
          dataResolver(response.value),
        );
    }
    return response as FutureOr<ResponseHelper.Response<T>>;
  } catch (e) {
    return ResponseHelper.Response.error(e.toString());
  }
}