network_module.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import 'package:dio/dio.dart';
  2. import 'package:injectable/injectable.dart';
  3. import 'package:location/data/api/atmob_api.dart';
  4. import 'package:location/data/api/atmob_stream_api.dart';
  5. import 'package:location/data/consts/constants.dart';
  6. import 'package:pretty_dio_logger/pretty_dio_logger.dart';
  7. import '../data/api/interceptor/stream_dio_log_interceptor.dart';
  8. import '../data/consts/build_config.dart';
  9. @module
  10. abstract class NetworkModule {
  11. @singleton
  12. Dio createDefaultDio() {
  13. Dio dio = Dio(BaseOptions());
  14. dio.interceptors.add(PrettyDioLogger(
  15. requestHeader: true,
  16. requestBody: true,
  17. responseBody: true,
  18. responseHeader: false,
  19. error: true,
  20. compact: true,
  21. enabled: BuildConfig.isDebug,
  22. ));
  23. return dio;
  24. }
  25. @Named('stream')
  26. @singleton
  27. Dio createStreamDio() {
  28. Dio streamDio = Dio(BaseOptions(
  29. responseType: ResponseType.stream,
  30. ));
  31. streamDio.interceptors.add(StreamDioLogInterceptor());
  32. return streamDio;
  33. }
  34. @singleton
  35. AtmobApi provideAtmobApi(Dio dio) {
  36. return AtmobApi(dio, baseUrl: Constants.baseUrl);
  37. }
  38. @singleton
  39. AtmobStreamApi provideAtmobStreamApi(@Named('stream') Dio dio) {
  40. return AtmobStreamApi(dio, baseUrl: Constants.baseUrl);
  41. }
  42. }