config_repository.dart 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:injectable/injectable.dart';
  2. import '../../utils/async_util.dart';
  3. import '../../utils/atmob_log.dart';
  4. import '../../utils/http_handler.dart';
  5. import '../api/atmob_api.dart';
  6. import '../api/request/config_request.dart';
  7. import '../api/response/config_response.dart';
  8. @lazySingleton
  9. class ConfigRepository {
  10. final tag = "ConfigRepository";
  11. final AtmobApi atmobApi;
  12. ConfigRepository(this.atmobApi) {
  13. AtmobLog.d(tag, '$tag....init');
  14. refreshConfig();
  15. }
  16. // 更新配置的值
  17. void refreshConfig() {
  18. AsyncUtil.retry(
  19. () => requestConfigsData(),
  20. Duration(seconds: 3),
  21. maxRetry: 100,
  22. ).then((configsResponse) {
  23. final list = configsResponse.list;
  24. if (list == null || list.isEmpty) {
  25. return;
  26. }
  27. AtmobLog.d(tag, 'refreshConfig....list: $list');
  28. });
  29. }
  30. /// 获取配置信息
  31. Future<ConfigResponse> requestConfigsData() {
  32. return atmobApi
  33. .confs(ConfigRequest(confCodes: ['intimacy', 'default_avatar']))
  34. .then(HttpHandler.handle(true));
  35. }
  36. }