refreshTokenCallback<T> method
Future<Response<T> ?>
refreshTokenCallback<T>(
- RequestOptions requestOptions, [
- RequestInterceptorHandler? handler
Implementation
Future<Response<T>?> refreshTokenCallback<T>(RequestOptions requestOptions,
[RequestInterceptorHandler? handler]) async {
if (authOptions.resolveJwt != null &&
authOptions.resolveRefreshToken != null) {
await executeTokenRefresh(handler);
final currentJwt = jwt;
if (requestOptions.headers.containsKey(RestApiClientKeys.authorization)) {
requestOptions.headers.update(
RestApiClientKeys.authorization, (v) => 'Bearer $currentJwt');
} else {
requestOptions.headers
.addAll({RestApiClientKeys.authorization: 'Bearer $currentJwt'});
}
if (handler != null) {
handler.next(requestOptions);
} else {
return await dio.request(
requestOptions.path,
cancelToken: requestOptions.cancelToken,
data: requestOptions.data,
onReceiveProgress: requestOptions.onReceiveProgress,
onSendProgress: requestOptions.onSendProgress,
queryParameters: requestOptions.queryParameters,
options: Options(
method: requestOptions.method,
sendTimeout: requestOptions.sendTimeout,
receiveTimeout: requestOptions.receiveTimeout,
extra: requestOptions.extra,
headers: requestOptions.headers,
responseType: requestOptions.responseType,
contentType: requestOptions.contentType,
validateStatus: requestOptions.validateStatus,
receiveDataWhenStatusError:
requestOptions.receiveDataWhenStatusError,
followRedirects: requestOptions.followRedirects,
maxRedirects: requestOptions.maxRedirects,
requestEncoder: requestOptions.requestEncoder,
responseDecoder: requestOptions.responseDecoder,
listFormat: requestOptions.listFormat,
),
);
}
}
return null;
}