request<T> method

Future<T?> request<T>(
  1. Future<ApiResult<T>> apiCall(
    1. Api api
    )
)

泛型 T 为实体类型 apiCall 返回 Future<ApiResult<T>> 返回必须有值,如果 data 为 null 或请求失败则抛异常

Implementation

Future<T?> request<T>(
  Future<model.ApiResult<T>> Function(Api api) apiCall,
) async {
  final apiInstance = Api(_dio, baseUrl: env.host);
  final result = await apiCall(apiInstance);
  switch (result.responseCode) {
    case ResponseCode.success:
      return result.data;
    case ResponseCode.codeExpired:
      throw NetworkError(
        code: ResponseCode.codeExpired,
        message: result.message,
      );
    default:
      Logger.debug('Error default');
      throw DefaultError(message: result.message);
  }
}