resolver<T> method

Future<HttpClientResolverDTO<T>> resolver<T>(
  1. Future<Response> fn
)

Implementation

Future<HttpClientResolverDTO<T>> resolver<T>(Future<Response> fn,) async {
  Map<String, dynamic>? data;
  HttpClientResolverError? error;


  try {

    final response = await fn;
    if (response.statusCode == 200 || response.statusCode == 201) {
      data = response.data;
    } else {
      error = HttpClientResolverError(
        message: response.statusMessage!,
        statusCode: response.statusCode!,
      );
    }
  } on DioException catch (e) {
    error = HttpClientResolverError(
      message: e.response!.statusMessage.toString(),
      statusCode: e.response!.statusCode!.toInt(),
    );
  }

  final resolvedResponse = {'data': data, 'error': error};
  return Future.value(resolvedResponse);
}