apiInterceptor top-level property
QueuedInterceptorsWrapper
apiInterceptor
getter/setter pair
Implementation
var apiInterceptor = QueuedInterceptorsWrapper(
onRequest: (options, handler) async {
print('path: ${options.path}');
if (options.path == '/login') {
return handler.next(options);
}
var stringToken = await Preferences().getToken();
String token = Token.fromJson(jsonDecode(stringToken)).token ?? "";
print('token: $token');
if (token.isEmpty || token == '') {
var resultToken = await PortalEazeApiService().platform();
token = resultToken.data?.token ?? '';
Preferences().saveToken(jsonEncode(resultToken.data?.toJson()));
}
options.headers['Content-Type'] = "application/json";
options.headers['Authorization'] = 'Bearer $token';
return handler.next(options);
},
onError: (e, handler) {
print(e.error);
print(e.message);
print(e.response);
return handler.next(e);
},
onResponse: (e, handler) {
return handler.next(e);
},
);