config_repository.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'package:flutter/Material.dart';
  2. import 'package:get/get.dart';
  3. import '../../utils/async_util.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. import '../bean/member_pop_up_bean.dart';
  9. class ConfigRepository {
  10. ConfigRepository._();
  11. final enable = false.obs;
  12. void refreshConfig() {
  13. AsyncUtil.retry(() => requestConfigsData(), Duration(seconds: 3),
  14. maxRetry: 100)
  15. .then((configsResponse) {
  16. final list = configsResponse.list;
  17. if (list == null || list.isEmpty) {
  18. debugPrint('refreshConfig....list is empty');
  19. return;
  20. }
  21. if (list.first.value is Map<String, dynamic>) {
  22. final memberPopUpBean =
  23. MemberPopUpBean.fromJson(list.first.value as Map<String, dynamic>);
  24. debugPrint(
  25. 'refreshConfig....memberPopUpBean: ${memberPopUpBean.toJson()}');
  26. enable.value = memberPopUpBean.enable == true;
  27. debugPrint('refreshConfig....enable: ${enable.value}');
  28. }
  29. });
  30. }
  31. Future<ConfigResponse> requestConfigsData() {
  32. return atmobApi
  33. .confs(ConfigRequest(confCodes: ['member_pop_up']))
  34. .then(HttpHandler.handle(true));
  35. }
  36. }
  37. final configRepository = ConfigRepository._();