|
@@ -28,17 +28,17 @@ class DioClient {
|
|
|
receiveTimeout: 3000,
|
|
|
));
|
|
|
|
|
|
-
|
|
|
- assert(() {
|
|
|
- _dio.interceptors.add(LogInterceptor(
|
|
|
- request: true,
|
|
|
- requestBody: true,
|
|
|
- responseBody: true,
|
|
|
- error: true,
|
|
|
- logPrint: _logger.d,
|
|
|
- ));
|
|
|
- return true;
|
|
|
- }());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -154,8 +154,34 @@ class TokenInterceptor extends Interceptor {
|
|
|
|
|
|
|
|
|
final clonedDio = Dio()..options = _dio.options;
|
|
|
- final response = await clonedDio.fetch(options);
|
|
|
+
|
|
|
+ clonedDio.interceptors.add(InterceptorsWrapper(
|
|
|
+ onResponse: (Response<dynamic> response, ResponseInterceptorHandler handler) async {
|
|
|
+ final responseData = response.data as Map<String, dynamic>;
|
|
|
+ if (responseData['ret'] == 1) {
|
|
|
+ handler.next(
|
|
|
+ Response<dynamic>(
|
|
|
+ data: responseData['data'],
|
|
|
+ headers: response.headers,
|
|
|
+ requestOptions: response.requestOptions,
|
|
|
+ statusCode: response.statusCode,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ handler.reject(
|
|
|
+ DioError(
|
|
|
+ requestOptions: response.requestOptions,
|
|
|
+ error: AppException(
|
|
|
+ message: responseData['msg'] ?? 'Unknown Error',
|
|
|
+ statusCode: responseData['ret'] ?? -1
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ));
|
|
|
|
|
|
+ final response = await clonedDio.fetch(options);
|
|
|
_isRefreshing = false;
|
|
|
return handler.resolve(response);
|
|
|
}
|