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,
      parameters: _resolveQueryParameters(),
      data: _resolveData(),
      dio: dio,
      options:
          option?.copyWith(sendTimeout: timeout, receiveTimeout: timeout),
      method: method,
    );

    var validatedData = validate(ret);
    if (validatedData == 200) {
      final responseMap = _asResponseMap(ret.response);
      var convertedData = convert(responseMap?['data']);
      return ApiResponse(
        code: validatedData,
        data: convertedData,
        msg: responseMap?['message']?.toString() ?? 'success',
        total: _readTotal(responseMap),
      );
    } else {
      return handleException(ret);
    }
  } catch (e) {
    return ApiResponse(code: -1, msg: 'request error', e: e);
  }
}