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);
  },
);