ente_interceptor.dart 1001 B

1234567891011121314151617181920212223242526272829
  1. import 'package:dio/dio.dart';
  2. import 'package:flutter/foundation.dart';
  3. import 'package:photos/core/configuration.dart';
  4. import 'package:shared_preferences/shared_preferences.dart';
  5. import 'package:uuid/uuid.dart';
  6. class EnteRequestInterceptor extends Interceptor {
  7. final SharedPreferences _preferences;
  8. final String enteEndpoint;
  9. EnteRequestInterceptor(this._preferences, this.enteEndpoint);
  10. @override
  11. void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
  12. if (kDebugMode) {
  13. assert(
  14. options.baseUrl == enteEndpoint,
  15. "interceptor should only be used for API endpoint",
  16. );
  17. }
  18. // ignore: prefer_const_constructors
  19. options.headers.putIfAbsent("x-request-id", () => Uuid().v4().toString());
  20. final String? tokenValue = _preferences.getString(Configuration.tokenKey);
  21. if (tokenValue != null) {
  22. options.headers.putIfAbsent("X-Auth-Token", () => tokenValue);
  23. }
  24. return super.onRequest(options, handler);
  25. }
  26. }