execute method

  1. @override
Future<ApiResponse<T>> execute({
  1. Dio? dio,
})
override

Implementation

@override
Future<ApiResponse<T>> execute({Dio? dio}) async {
  try {
    var ret = await DioUtil().request(
      path,
      cancelToken: _cancelToken,
      parmas: method == DioMethod.get ? queryParameters : null,
      data: method == DioMethod.post ? data : null,
      dio: dio,
      options: option?.copyWith(sendTimeout: timeout, receiveTimeout: timeout),
      method: method,
    );

    var validatedData = validate(ret);
    if (validatedData == 200) {
      var convertedData = convert(ret.response['data']);
      return ApiResponse(code: 200, data: convertedData);
    } else {
      return handleException(ret);
    }
  } catch (e) {
    return ApiResponse(code: -1, msg: 'request error', e: e);
  }
}